20.获取测试对象的属性及内容

场景

获取测试对象的内容是前端自动化测试里一定会使用到的技术。比如我们要判断页面上是否显示了一个提示,那么我们就需要找到这个提示对象,然后获取其中的文字,再跟我们的预期进行比较。在webdriver中使用element.attribute()方法可以获取dom元素(测试对象)的属性。

获取测试对象的属性能够帮我们更好的进行对象的定位。比如页面上有很多class都是‘btn‘的div,而我们需要定位其中1个有具有title属性的div。由于selenium-webdriver是不支持直接使用title来定位对象的,所以我们只能先把所有class是btn的div都找到,然后遍历这些div,获取这些div的title属性,一旦发现具体title属性的div,那么返回这个div既可。在webdriver中,使用element.text()方法可以返回dom节点的内容(text)。

下面的代码演示了如何获取测试对象的title属性和该对象的文字内容

attribute.html

    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <title>attribute</title>
            <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
            <script type="text/javascript">
                $(document).ready(function(){
                    $(‘#tooltip‘).tooltip({"placement": "right"});
                });
            </script>
        </head>

        <body>
            <h3>attribute</h3>
            <div class="row-fluid">
                <div class="span6">
                    <a id="tooltip" href="#" data-toggle="tooltip" title="watir-webdriver better than selenium-webdriver">hover to see tooltip</a>
                </div>
            </div>
        </body>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>

注:attribute.html和test.py放在同一个文件夹下

创建test.py输入一下代码

from selenium import webdriver
from time import sleep
import os

dr = webdriver.Chrome()
file_path = ‘file:///‘ + os.path.abspath(‘attribute.html‘)
dr.get(file_path)
sleep(1)

link = dr.find_element_by_id(‘tooltip‘)
sleep(1)

#获取tooltip的内容
print(link.get_attribute(‘title‘))
#获取该链接的text
print(link.text)

sleep(1)
dr.quit()

原文地址:https://www.cnblogs.com/luoshuifusheng/p/9172967.html

时间: 2024-10-26 03:05:52

20.获取测试对象的属性及内容的相关文章

福利-&gt;KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型. 废话不多说,直接上代码: 1.工具类(其实就是NSObject的一个分类)头文件 1 #import <Foundation/Foundation.h> 2 3 @interface NSObject (YSRuntime) 4 5 /** 6 返回当前类的属性数组 7 8 @return 属

获取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">

获取JSON对象的属性名称

1.问题背景 一个json对象,是以键值对组成,通过循环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&

泛型获取对应对象类型属性值

1.传入一个泛型List, 2.获取泛型的类型Type type对象, 3.然后获取type 对象的对应属性PropertyInfo proInfo对象, 4.然后根据属性对象proInfo 获取泛型对象T的对应属性值 代码如下: private List<T> Test<T>(List<T> lst, string aa) { List<T> l = new List<T>(); Type t = typeof(T); string cc =

jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配

指定元素中包含 id 属性的, 如: $("span[id]") 代码如下: <span id="span1" name="S1">AAA</span><br/> <span id="span2" name="S2">BBB</span><br/> <span name="Sx3">CCC</spa

js获取json对象的属性值

// var responseData = response.data.result; for (var r in responseData) { if (responseData[r]["visible"] == 0) { responseData[r]["visible"] = "是"; } else { responseData[r]["visible"] = "否"; } } 原文地址:https:

通过反射获取某个对象下的属性值,或通过父类获取

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; /** * 通过反射获取某个对象下的属性值,或通过父类获取 * User: wangyongfei * Date

.NET获取实例化对象的部分属性名称

前言 项目中实例化的对象,对象中里面很有很多属性,有些是我们不需要的,有些是我们需要的,例如在下面的示例中:ID,CreateBy等属性在CB_Projects对象中是不需要的,在获取实例化对象属性名称的时候需要把这些属性过滤掉.UpdateProjectRequest是入参实例 1.定义实例化对象 using System; using System.Collections.Generic; namespace ServiceMe.Apps.Business.Common.DAL { publ

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

#!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): #封装向