我们在做UI自动化测试的过程中,某些情况会遇到,需要操作WebElement属性的情况。

假设现在我们需要获取一个元素的title属性,我们可以先找到这个元素,然后利用get_attribute方法获取属性的值。
eg:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su")
# 现在我们获取百度一下的值
value = search_button.get_attribute("value")
print(value)

结果:

Selenium给元素的属性赋值_chrome

那么如果我们需要改变百度一下这个按钮里边显示的值,该怎么做呢?**

用driver.execute_script()这个方法来执行js语句

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su") # 百度搜索按钮
# arguments[0]对应的是第一个参数,可以理解为python里的%s传参,与之类似
driver.execute_script("arguments[0].value = '你猜一下';", search_button)

执行结果:

Selenium给元素的属性赋值_chrome_02


**如果需要获取js语句执行后的返回值,在js语句前加"return" **

eg:

rom selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su") # 百度搜索按钮
# arguments[0]对应的是第一个参数,可以理解为python里的%s传参,与之类似
str = driver.execute_script("return arguments[0].value = '你猜一下';", search_button)
print(str)

Selenium给元素的属性赋值_百度_03