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()
selenium--更改标签的属性值的更多相关文章
- <mate>标签中属性/值的各个意思
<mate>标签中属性/值的各个意思 HTML 4 name 属性 1.<mate name="author" content="" /> ...
- 正则表达式,提取html标签的属性值
/** * 提取HTML标签的属性值 * @param source HTML标签内容 * "<a title=中国体育报 href=''>aaa</a><a ...
- 正值表达式匹配html标签的属性值
今天由于工作的需求,需要获取html标签的属性值,立即想到了正则表达式,标签如下: <circle id="ap_test" cx="200" cy=&q ...
- 使用script创建标签添加属性值和添加样式
<mark>使用script创建标签和给标签属性值以及样式的方法</mark><script> window.onload=function(){ var btn= ...
- 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里
这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...
- a 标签 rel 属性值 opener 的作用
<a> 元素,原英文单词为 anchor 的缩写,所以又称之为锚点元素.锚点元素的 href 属性用来创建通向其他网页.文件.同一页面内的位置.电子邮件地址或任何其他 URL 的超链接. ...
- JSP动作标签flush属性值
在JSP动作标签<jsp:include flush="true"/>,flush属性可以为true或false.flush默认值为false,当把flush属性赋值为 ...
- 怎样使用 v-bind 绑定 html 标签的属性值?
1. 在 Vue 中可是使用 v-bind 对 html 中的 属性 进行绑定, 如下所示, 我们想给这个 a 标签绑定一个 title 值: <!DOCTYPE html> <ht ...
- html标签默认属性值之margin;padding值
一.h1~h6标签:有默认margin(top,bottom且相同)值,没有默认padding值. 在chrome中:16,15,14,16,17,19; 在firefox中:16,15,14,16, ...
随机推荐
- 19条常用的MySQL优化方法(转)
本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下:1.EXPLAIN命令做MySQL优化,我们要善用EXPLAIN查看SQL执行计划.下面来个简单的示例,标注(1.2.3.4.5)我们 ...
- js中的方法如何传入多个参数
js中的方法如何传入多个参数 $(function () { let parameter1 = 1; let parameter2 = 'Hello World'; let parameter3 = ...
- python--unittest测试框架
unittest中最核心的四个概念是:test case, test suite, test runner, test fixture
- JS中判断是中文数字的函数
function checkcnnum(str) { ; const zh = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九','十','百','千 ...
- 关于宝塔面板windows版6.2的一些使用心得
关于宝塔面板windows版6.2的一些使用心得 第一次使用windows版本的 给客户搭建 asp+mssql的需求 心得1 安装 server2012 基于python开发的,所以安装的 ...
- SpringCloud 别人的主页
https://www.cnblogs.com/xuwujing/ java(28) springBoot(14) 设计模式(14) springcloud(7) hadoop(7) hive(5) ...
- nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译
ngx_http_fastcgi_module 模块允许将请求传递给 FastCGI 服务器. 示例配置 location / { fastcgi_pass localhost:9000; fastc ...
- Python多任务—进程
一.进程以及状态 1.进程 正在运行的应用程序就是一个进程.进程是资源分配的基本单元. Python多进程可以在多核CPU上运行,多进程充分利用了多核的资源. 2. 进程的状态 工作中,任务数往往大于 ...
- Python学习笔记之replace()
10-2 可使用方法replace()将字符串中的特定单词都替换为另一个单词. 读取你刚创建的文件learning_python.txt 中的每一行,将其中的Python 都替换为另一门语言的名称,如 ...
- 为啥git会这么差!!!!
删除分支 git push origin --delete Chapater6 可以删除远程分支Chapater6 git branch -d Chapater8 可以删除本地分支(在主分支中) ...