zoukankan      html  css  js  c++  java
  • 更改一个页面对象的属性值

    <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()
        #对页面元素属性的新增、更改、查询以及删除都是临时的,只针对当前会话有效,页面源码并没有被真正修改
  • 相关阅读:
    jvm的那些设置参数你都知道吗
    进程之间究竟有哪些通信方式
    从零开始带你成为JVM实战高手
    java 面试题目(java高级架构)
    面试要点补充
    Paxos算法与Zookeeper分析,zab (zk)raft协议(etcd) 8. 与Galera及MySQL Group replication的比较
    一文搞懂Raft算法
    Python 循环语句
    Python 条件语句
    Python 运算符
  • 原文地址:https://www.cnblogs.com/sleeping-cat/p/8193460.html
Copyright © 2011-2022 走看看