码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-01-04 16:32:57      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:bottom   drive   argument   数值   tca   arch   setup   对象   sele   

#!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()
    #对页面元素属性的新增、更改、查询以及删除都是临时的,只针对当前会话有效,页面源码并没有被真正修改

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

标签:bottom   drive   argument   数值   tca   arch   setup   对象   sele   

原文地址:https://www.cnblogs.com/sleeping-cat/p/8193460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!