<html> <head> <title>设置文本框属性</title> <meta http-equiv = "Content-Type" content = "text/html; charset = utf-8"> </head> <body> <input type="text" id="text" value="今年夏天西瓜相当甜!" size=100> 文本框 </input> </body> </html>
#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #更改一个页面对象的属性值 from selenium import webdriver import unittest def addAtttribute(driver,elementObj,attributeName,value): #封装向页面标签中添加新属性的方法 #调用JavaScript代码给页面标签添新属性,arguments[0]~arguments[2]分别会用后面的element、attributeName和value参数值进行替换,并执行该JavaScript代码 #添加新属性的JavaScript代码语法为:element.attributeName = value #比如 input.name = 'test' driver.execute_script("arguments[0].%s=arguments[1]" %attributeName,elementObj,value) def setAttribute(driver,elementObj,attributeName,value): #封装设置页面对象的属性值的方法 #调用JavaScript代码修改页面元素的属性值,arguments[0]~arguments[2]分别会用后面的element、attributeName和value参数值进行替换,并执行该JavaScript代码 #添加新属性的JavaScript代码语法为:element.attributeName = value driver.execute_script("arguments[0].setAttribute(arguments[1],arguments[2])",elementObj,attributeName,value) def getAtttribute(elementObj,attributeName): # 封装获取页面对象的属性值的方法 return elementObj.get_attribute(attributeName) def removeAttribute(driver,elementObj,attributeName): #封装删除页面元素属性的方法 #调用JavaScript代码修改页面元素的属性值,arguments[0]、arguments[1]分别会用后面的element、attributeName参数值进行替换,并执行该JavaScript代码 #添加新属性的JavaScript代码语法为:element.attributeName = value 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 = "e://operateAttribute.html" self.driver.get(url) element = self.driver.find_element_by_xpath('//input') addAtttribute(self.driver,element,'name','search')#向页面文本框input标签中添加新属性name = 'search' print("添加新的属性值 %s= '% s'" % ('name',getAtttribute(element,'name')))#添加新属性后,查看一下新添加的属性 print("更改文本框中的内容前的内容:",getAtttribute(element,'value'))#查看修改前文本框input标签的value属性值 setAttribute(self.driver,element,'value','这是更改后的文字内容')#更改input页面元素的value属性值为“这是更改后的文字内容” print('更改文本框中内容后的内容:',getAtttribute(element,'value'))#更改input页面元素的value属性值后,再次查看其value属性值 print('更改前文本框标签中的size属性值:',getAtttribute(element,'size'))#查看修改前文本框input页面元素中的size属性值 setAttribute(self.driver,element,"size",20)#更改input页面元素的size属性值为20 print("更改后文本框标签中的size属性值:",getAtttribute(element,"size"))#更改input页面元素的size属性值后,再次查看其size属性值 print('文本框value属性值:',getAtttribute(element,'value'))#查看删除input页面元素value属性前value属性值 removeAttribute(self.driver,element,'value')#删除文本框的value属性 print('删除value属性值后value属性值:',getAtttribute(element,'value'))#删除文本框的value属性后,再次查看value属性值 def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main() #对页面元素属性的新增、更改、查询以及删除都是临时的,只针对当前会话有效,页面源码并没有被真正修改