selenium--更改标签的属性值

简介: selenium--更改标签的属性值

前戏


在进行web自动化的时候,我们有时需要获取元素的属性,有时需要添加,有时需要删除,这时候就要通过js来进行操作了


实战


from selenium import webdriver
import unittest
def addAttribute(driver, elementobj, attributeName, value):
    '''
    封装向页面标签添加新属性的方法
    调用JS给页面标签添加新属性,arguments[0]~arguments[2]分别
    会用后面的element,attributeName和value参数进行替换
    添加新属性的JS代码语法为:element.attributeName=value
    比如input.name='test'
    '''
    driver.execute_script("arguments[0].%s=arguments[1]" % attributeName, elementobj, value)
def setAttribute(driver, elementobj, attributeName, value):
    '''
    封装设置页面对象的属性值的方法
    调用JS代码修改页面元素的属性值,arguments[0]~arguments[1]分别
    会用后面的element,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):
    '''
    封装删除页面属性的方法
    调用JS代码删除页面元素的指定的属性,arguments[0]~arguments[1]分别
    会用后面的element,attributeName参数进行替换
    '''
    driver.execute_script("arguments[0].removeAttribute(arguments[1])",
                          elementobj, attributeName)
class TestDemo(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
    def test_dataPicker(self):
        url = "D:\PycharmProjects\zouzou\dom.html"
        self.driver.get(url)
        element = self.driver.find_element_by_xpath('//input')
        # 向页面文本框input标签中添加新属性name='search'
        addAttribute(self.driver, element, 'name', 'search')
        # 添加新属性后,查看一下新属性值
        print('添加的新属性值%s="%s"' % ("name", getAttribute(element, "name")))
        print('更改文本框中内容前的value的值:', getAttribute(element, 'value'))
        # 更改value的属性值为“这是更改后的值”
        setAttribute(self.driver, element, 'value', '这是更改后的值')
        print('更改后value的值为:', getAttribute(element, 'value'))
        # 查看更改前input页面元素中size属性值
        print('更改前size的属性值为:', getAttribute(element, 'size'))
        # 更改input的属性值为20
        setAttribute(self.driver, element, 'size', 20)
        print('更改后size的属性值为:', getAttribute(element, 'size'))
        # 查看删除input页面元素value属性前的值
        print('删除前文本框value的值:', getAttribute(element, 'value'))
        # 删除属性值
        removeAttribute(self.driver, element, 'value')
        print('删除后文本框value的值:', getAttribute(element, 'value'))
if __name__ == '__main__':
    unittest.main()

相关文章
|
7月前
|
前端开发
selenium 解决 id定位、class定位中,属性值带空格的解决办法
selenium 解决 id定位、class定位中,属性值带空格的解决办法
377 1
Python+Selenium 技巧篇-svg标签内元素的xpath定位方式
Python+Selenium 技巧篇-svg标签内元素的xpath定位方式
1651 0
Python+Selenium 技巧篇-svg标签内元素的xpath定位方式
C#中通过Selenium定位<a>标签的问题
刚才在QQ群里看到有人提问,如何实现退出百度登录问题。那么之所以会有这个问题,主要是因为这个元素,如下图所示,是无法直接定位到的: 经过研究发现,要想定位到这种元素,拢共分两步: 第一步,把鼠标移到能使目标元素显示在页面上的前置元素上; 第二步,通过xpath对目标标签元素进行定位。
1390 0
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
146 5
|
15天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
65 19
Selenium IDE:Web自动化测试的得力助手
|
17天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
113 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
537 5
|
2月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。