web自动化测试中的八大定位方法,推荐使用xpath

  web自动化测试中的定位方法,常用相对路径来定位,推荐使用 xpath 定位

在百度进行定位

# 引入库
from selenium import webdriver

# 打开谷歌浏览器,建立会话。启动Chromedriver.exe  打开Chrome
driver = webdriver.Chrome()      # 启动谷歌浏览器
# driver = webdriver.Firefox()   # 启动火狐浏览器
# driver = webdriver.Ie()        # 启动IE浏览器

# 访问百度首页
driver.get("http://www.baidu.com")

一、8大定位:

1. id定位

# id定位,属性 + 操作 = webELement
ele1 = driver.find_element_by_id("kw")
print(ele1)

2. 标签名定位tag_name,不能唯一的找到特定的元素

ele2 = driver.find_element_by_tag_name("input")  # 在dom页面当中,匹配到的第一个元素
print(ele2)
eles = driver.find_elements_by_tag_name("input")    # 列表,元素为webELement对象  全部匹配的元素
print(eles)

3.class_name 定位  不能唯一的找到特定的元素

driver.find_element_by_class_name("s_ipt")
driver.find_elements_by_class_name("s_ipt")

4.name 定位 不唯一

driver.find_element_by_name("wd")driver.find_elements_by_name("wd")

以上四种元素定位针对所有元素

5.link_text 定位,完整匹配文本值

driver.find_element_by_link_text("更多产品")

6.partial_link_text 定位,部分匹配上

driver.find_element_by_partial_link_text("产品")

7. xpath 定位

语法

  • /:

    • 绝对定位  
  • //:
    • 相对定位  
    • 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置  
  • .:
    • 选取当前节点  
  • ..:
    • 选取当前节点的父节点  
  • @:
    • 选取属性
    • @class="xxx" ,shuxing 属性放在中括号 【】中    
  • *:
    • 通配符。匹配所有 //*  
  • @*:
    • 通配符。匹配所有属性 //*[@*="hello"]  
  • 多条件查询
    • and
    • or
    • //input[@id="kw" and @name="wd"]

浏览器的快捷键    Ctrl + F

使用标签名 + 节点属性定位

  • 语法://标签名[@属性名=值]
  • //input[@id="kw" and @name="wd"]

使用文本内容匹配:函数:text()

  • 文本全部匹配:text()="文本内容"

    • //a[text()="更多产品"]  
  • 文本部分匹配:contains(text(),部分文本内容)
    • (译:康ten死)  
    • //a[contains(text(),"产品")]  

通过部分属性值匹配

  • 语法://标签名[contains(@属性名,部分属性值)]
  • //a[contains(@href,"om/more/") and @class="bri"]

层级定位:

  • 先确定节点的父节点,在找子节点
  • //div[@id="u1"]//a[@name="tj_login"]

xpath轴定位

使用语法:

已知的元素//轴名称::标签名称[@属性=值]

  • ancestor:(译:ang sei s t儿)

    • 当前节点之前的所有父节点
  • parent:(译:pan run t)
    • 当前节点的父节点
  • preceding:(译:pan run t)
    • 当前节点之前的所有节点
  • preceding-sibling:(译:pu rui sei ding sei bo li)
    • 当前节点之前的所有同级节点
  • following:(译:fao lin)
    • 当前节点之后的所有节点
  • following-sibling:(译:fao lin sei bo li)
    • 当前节点之后的所有同级节点
  • child
    • 当前节点的子节点
  • self
    • 当前节点本身

8. css 定位------自行搞定

浏览器自带的css、xpath、js定位方式

二、怎么使用

# 引入库
from selenium import webdriver

# 打开谷歌浏览器,建立会话。启动Chromedriver.exe  打开Chrome
driver = webdriver.Chrome()

# 访问百度首页
driver.get("http://www.baidu.com")

driver.find_element_by_xpath(‘//span[@class="setting-text"]‘)      # 找到一个
driver.find_elements_by_xpath(‘//span[text()="设置"]‘)     # 找到多个

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******

原文地址:https://www.cnblogs.com/shouhu/p/12192222.html

时间: 2024-08-04 07:09:36

web自动化测试中的八大定位方法,推荐使用xpath的相关文章

web页面中参数的传递方法

在web页面中参数的传递方法多样,主要有以下几种: Viewstate,Querystring,Session, Application,Cookie,Cache. Viewstate: 特点:服务启启动的各种控件的视图状态:包括控件的所有属性值:Enableviewstate可以启用和禁用视图状态:        优点:防止新产生一个页面实例后,丢失前一个页面的状态信息: 例如:在用户登录注册验证过程中,无须使用导致服务器往返行程的代码,我们只需要在客户端进行验证就可以了.另外有些控件的初始化

(转)Web自动化测试中的接口测试

1.背景 1.1 Web程序中的接口 1.1.1 典型的Web设计架构 web是实现了基于网络通信的浏览器客户端与远程服务器进行交互的应用,通常包括两部分:web服务器和web客户端.web客户端的应用有html,JavaScript,ajax,flash等:服务器端的应用非常丰富,比如java的servlet,jsp,ssh框架,.net的aspx,还包括其他脚本如php,python. web服务器端的设计架构近年来一直比较流行的是三层架构(3-tier application),通常意义上

(转)HTML&CSS——background: url() no-repeat 0 -64px;CSS中背景图片定位方法

http://blog.csdn.net/oscar92420aaa/article/details/51304067 CSS中背景图片的定位,困扰我很久了.今天总算搞懂了,一定要记下来. 在CSS中,背景图片的定位方法有3种: 1)关键字:background-position: top left; 2)像素:background-position: 0px 0px; 3)百分比:background-position: 0% 0%; 上面这三句语句,都将图片定位在背景的左上角,表面上看效果是

[Flex] IFrame系列 —— 在flex的web应用中嵌入html的方法

在flex的web应用中,我们往往必须有嵌入html的需求,这时候你会发现IFrame很有用! flex而且可以和html中的JavaScript进行交互,flex可以通过iframe调用到html中的JavaScript方法以及获取调用后的返回值. flex iframe下载地址:https://github.com/downloads/flex-users/flex-iframe/flex-iframe-1.5.1.zip bin有需要用到的flex库 swc flex代码: <?xml v

免费生成二维码接口,可直接嵌入到web项目中,附带嵌入方法,任意颜色二维码,任意大小二维码!

在线体验连接:http://www.zhaimaojun.top/qrcode/ 你是否在项目中寻找方便而且免费的可以直接嵌入到项目中的二维码生成工具呢?你找到了这里,说明你已经找到了!不要犹豫直接拿去用吧! 体验的页面预览: 好了 废话不多说,接下来示范两种嵌入方式一种嵌入到网页的一种嵌入到c#的web程序中,可以直接下载为文件. 第一种,直接下载二维码图片,通过浏览器自带的下载器或者浏览器里面直接输入地址: 直接在下载栏或者地址栏里输入: http://www.zhaimaojun.top/

Web前端调试利器—FireBug使用方法推荐

概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前端开发需要的全部功能.官方网站:www.getfirebug.com 如何获取Firebug? 因为它是Firefox浏览器的一个扩展插件,所以首先需要下载Firefox浏览器.读者可以访问www.mozilla.com下载并安装Firefox浏览器.安装完成后用它访问https://addons.

TestNG测试框架在基于Selenium进行的web自动化测试中的应用

这个测试框架可以把写好的测试用例按自定义顺序执行,以Selenium WebDriver自动化测试用例为例: 1.新建一个名为forTestNg的java project,然后创建一个libs文件夹,导入所有和Selenium相关的jar包: 2.安装TestNG,在Eclipse中点击Help->Install New Software,点击Add,Location填写“http://beust.com/eclipse”,然后点击OK: 之后勾选TestNG,点击Next进行安装即可: 之后点

PHP pcntl_fork不能在web服务器中使用的变通方法

使用PHP扩展pcntl_fork可以进行多进程编程.编写好的程序可以在linux命令行中执行,但是如果把该程序作为apache web服务器的动态网页文件通过浏览器访问,则执行到pcntl_fork()函数时程序不再往下执行.原因是pcntl_fork()不能在apache的web方式下正常工作[1]. 一种变通的解决办法是,把含有pcntl_fork的程序作为shell脚本来运行.(1)先在shell命令行方式下调试好含有pcntl_fork的程序.(2)编写一个网页文件,该网页的表单(fo

CSS 中背景图片定位方法

三种: 关键字:background-position: top left; 像素:background-position: 0px 0px; 百分比:background-position: 0% 0%; 区别:前两种定位将背景图片左上角的原点放置在指定位置:第三种方式将图片本身的点(x%,y%)与背景区域的点(x%,y%)重合. 使用百分比设置的主要优势在于,当页面缩放的时候,背景图片也会跟着一起缩放.