selenium(15):使用js修改元素属性及方法

from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.keys import Keys
import time

def addAttribute(driver,elementObj,attributeName,value):
#给元素新增属性,driver浏览器,elementObj元素,attributeName属性名字,value属性值
#arguments[0]获取elementObj的值,arguments[1]获取value的值,%s获取attributeName的值
#实际的表达式为driver.execut_script("elementObj.attributeName=value")
driver.execute_script("arguments[0].%s=arguments[1]" %attributeName,elementObj,value)

def setAttribute(driver,elementObj,attributeName,value):
#更改元素的属性的值
driver.execute_script("arguments[0].setAttribute(arguments[1],arguments[2])",elementObj,attributeName,value)

def getAttribute(elementObj,attributeName):
#获取元素的属性的值
return elementObj.get_attribute(attributeName)

def removeAttribute(driver,elementObj,attributeName):
#删除元素的属性的值
driver.execute_script("arguments[0].removeAttribute(arguments[1])",elementObj,attributeName)

driver=webdriver.Chrome()
url='http://127.0.0.1/test_change_attr.html'
driver.get(url)
time.sleep(2)

element=driver.find_element_by_xpath('//input')
addAttribute(driver,element,'name','search') #给元素增加属性
time.sleep(2)

setAttribute(driver,element,'value','abcde') #更改元素的属性值
time.sleep(2)

setAttribute(driver,element,'size',20) #更改元素的属性值
time.sleep(2)

removeAttribute(driver,element,'value') #删除元素的属性的值
time.sleep(2)
driver.quit()
posted @ 2021-11-25 13:20  Tester-**  阅读(2082)  评论(0编辑  收藏  举报