首页 > 其他分享 >selenium之UI自动化时更改/添加/获取标签的属性值

selenium之UI自动化时更改/添加/获取标签的属性值

时间:2022-11-03 14:47:19浏览次数:59  
标签:obj attribute selenium value element UI arguments 标签 driver

前言

在web自动化测试的过程中,根据用例可能需要

①获取某元素的某标签的某属性值;例如使用 get_attribute('value') 获取元素显示的value值

②更改某元素的某标签的某属性值;例如密码框需要先将type属性的属性值由password修改为text之后才可以使用 get_attribute('value') 

③增加某元素的某标签的某属性值;(暂时未用到)

实现方法

def add_attribute(driver, element_obj, attribute_name, value):
    """
    封装向页面标签添加新属性的方法
    调用JS给页面标签添加新属性,arguments[0]~arguments[2]分别
    会用后面的element,attributeName和value参数进行替换
    添加新属性的JS代码语法为:element.attributeName=value
    比如input.name='test'
    """
    driver.execute_script("arguments[0].%s=arguments[1]" % attribute_name, element_obj, value)


def set_attribute(driver, element_obj, attribute_name, value):
    """
    封装设置页面对象的属性值的方法
    调用JS代码修改页面元素的属性值,arguments[0]~arguments[1]分别
    会用后面的element,attributeName和value参数进行替换
    """
    driver.execute_script("arguments[0].setAttribute(arguments[1],arguments[2])", element_obj, attribute_name, value)


def get_attribute(element_obj, attribute_name):
    
    # 封装获取页面对象的属性值方法(selenium原生api)
    return element_obj.get_attribute(attribute_name)


def remove_attribute(driver, element_obj, attribute_name):
    """
    封装删除页面属性的方法
    调用JS代码删除页面元素的指定的属性,arguments[0]~arguments[1]分别
    会用后面的element,attributeName参数进行替换
    """
    driver.execute_script("arguments[0].removeAttribute(arguments[1])",
                          element_obj, attribute_name)

实例

将百度首页的搜索框后的《百度一下》按钮文本值修改为《就不点击》

from selenium import webdriver

options = webdriver.ChromeOptions()
driver = webdriver.Chrome(executable_path='/home/test/MyCode/Common/driver/chromedriver_105', chrome_options=options)
driver.get('http://www.baidu.com')
element_obj = driver.find_element_by_xpath('//*[@id="su"]')
js = 'arguments[0].setAttribute(arguments[1],arguments[2])'

driver.execute_script(js, element_obj, 'value', '就不点击')

运行结果:

 

标签:obj,attribute,selenium,value,element,UI,arguments,标签,driver
From: https://www.cnblogs.com/hls-code/p/16854396.html

相关文章