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

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

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

时间: 2024-07-29 04:55:28

更改一个页面对象的属性值的相关文章

通过反射判断对象的属性值是否为空

问题产生场景? 在项目开发过程中我采用了表单内部嵌套列表的形式提交数据,将表单于列表数据同时提交保存.   有时候管理人的出资人结构我新增了多条  这时候并没有真正的保存到数据库,而是保存在了页面前端临时保存等待真正的提交  我操作删除 这时候删除实现的方式是 function delFundManage(obj){ $(obj).parent().parent().remove();} 移除了 但是在创建列表的时候 进行移除第一个 arr[1]  这里并没有将修改为arr[0] 这里提交到后台

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

获取JSON对象的属性值

1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

WPFS数据绑定(要是后台类对象的属性值发生改变,通知在“client界面与之绑定的控件值”也发生改变须要实现INotitypropertyChanged接口)

WPFS数据绑定(要是后台类对象的属性值发生改变,通知在"client界面与之绑定的控件值"也发生改变须要实现INotitypropertyChanged接口) MainWindow.xaml <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="

获取一个类指定的属性值

/// <summary> /// 获取一个类指定的属性值 /// </summary> /// <param name="info">object对象</param> /// <param name="field">属性名称</param> /// <returns></returns> public static object GetPropertyValue(obj

JQuery 操作对象的属性值

通过JQuery去操作前台对象(div,span...)的属性是很常见的事情,本文就简单的介绍几种操作情形. 1):通过属性值去获取对象 2):用JQuery去修改对象的属性值 3):获取并修改对象的Style的属性值 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src=&quo

java 反射实现不同对象相同属性值复制

1.此方法会过滤final字段 2.此方法会过滤对象字段 3.此方法会兼容同对象之间.不同对象之间属性值复制 package com.bin.design.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.List; import com.bin.des

js如何获取另一个页面传递过来的值?

var t="<%=request.getParameter("do")%>"; alert(t); js如何获取另一个页面传递过来的值?

利用反射机制,对对象的属性值进行自动设置

import java.lang.reflect.Method; /** * 对象的属性值自动设置,利用反射机制 */ public class AutoSet { /** * 将源对象的属性值赋值到目标对象,属性名一致,且源对象有get方法,目标对象有set方法 * @param src 源对象 * @param target 目标对象 * @return 赋值后的目标对象 */ public static Object autoGetterAndSetter(Object src, Obje