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

原文地址:https://www.cnblogs.com/zouzou-busy/p/11285732.html

时间: 2024-10-28 21:40:39

selenium--更改标签的属性值的相关文章

JAVA获取指定标签的属性值

package com.zving.teachPlat.util; import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import java.util.regex.Matcher;import java.util.regex.Pattern;import com.zving.framework.utility.StringUtil; public class MatchUtil { /** *

<a>标签 href属性值为#或以#开头的意思

比如说当一个页面里面有一个这样的标签   <a name="hello" >name为hello的锚点</a> 这个<a>标签可以称之为一个"锚点" 当然页面上还有这两个超链接<a>标签. <a href="#hello">回到name为hello的锚点</a><br> <a href="#">回到顶层</a> 好那么现

正则表达式获取字符串的input标签的属性值

直接上正则表达式: (?<=\<input.*value=\").*?(?=\") 字符串如下: <form action="https://www.baidu.com" method="post" name="form">    <input name="test_mbid" type="hidden" value="190789451"

JS 获取CSS 文件里面的标签和属性值

//styleSheets[0] 代表HTML 页面第一个添加CSS 链接 //获取内容var cssfile=document.styleSheets[0].cssRules;//第一个标签 的标签名cssfile[0].selectorText //第一个标签 的内容cssfile[0].cssText 原文地址:https://www.cnblogs.com/cjw111/p/11579143.html

meta 标签里属性值 viewport小结

页面在移动设备中,展现方式,是否能缩放需要设置 <meta name="viewport" content="width=device-width, initial-scale=1"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 解释说明:wi

js解析xml,获取XMl标签属性值

<script type="text/javascript"> var xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +"<RecordInfo camId=\"1000000$1$0$0\" count=\"12\" />"; $(function(){ //加载xmlDoc v

HTML元素(包括HTML5)的标签、属性及事件大全

1.标签列表 标签 描述 <!–…–> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义超链接. <abbr> 定义缩写. <acronym> HTML 5 中不支持.定义首字母缩写. <address> 定义地址元素. <applet> HTML 5 中不支持.定义 applet. <area> 定义图像映射中的区域. <article> 定义 article. <aside&

更改一个页面对象的属性值

#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #更改一个页面对象的属性值 from selenium import webdriver import unittest def addAtttribute(driver,elementObj,attributeName,value): #封装向

webdriver高级应用 -更改一个对象界面的属性值

#-*- coding=utf-8 -*- #更改一个对象界面的属性值 from selenium import webdriver import unittest def addAttribute(driver,elementObj,attributeName,value): #封装向页面标签中添加新属性的方法 #调用JavaScript代码页面标签添加新属性,arguments[0]~arguments[2]分别用后面的 #element,attributeName和Value参数值进行替换