python selenium automation, use js to add element attributes, modify element attribute values, get element attribute values, delete element attribute values

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()

Guess you like

Origin blog.csdn.net/weixin_44123630/article/details/113837250