web app UI自动化测试Xpath定位总结-2019-12-27

本文详细介绍了Xpath在Selenium Web和Appium UI自动化测试中的应用,包括根据元素属性、标签、层级关系、兄弟节点、逻辑运算以及模糊定位等方法,提供了丰富的定位策略。
摘要由CSDN通过智能技术生成

title: Xpath 定位汇总
date: 2019-12-27 16:42:00
tags: Xpath
author: YeXiaoXin

前言

本文主要介绍 Xpath 定位的语句语法,应用场景为Web、APP UI自动化的元素定位中。
文章参考-https://blog.csdn.net/zyooooxie/article/details/83856854

什么是Xpath

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

Xpath路径表达式

表达式 描述
/ 从跟节点开始选择
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置。
. 选择当前节点
选择当前节点的父节点
@ 选取属性
* 模糊匹配

Selenium web自动化测试 -Xpath定位

1、根据元素属性名和属性值定位

在这里插入图片描述

    def test_16(self):
        """xpath 根据元素属性名和属性值来定位"""
        # 通过元素的id、name、class这属性定位
        driver = webdriver.Chrome()
        driver.implicitly_wait(50)
        driver.get("https://www.baidu.com")
        # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

        # xpath 通过id属性来定位
        driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python')

        # xpath 通过name属性来定位
        driver.find_element_by_xpath('//*[@name="wd"]').send_keys('python')

        # xpath 通过class属性来定位
        driver.find_element_by_xpath('//*[@class="s_ipt"]').send_keys('python')

        # xpath 也可以通过 其他属性 定位
        driver.find_element_by_xpath('//*[@autocomplete="off"]').send_keys('python')

        time.sleep(1.5)
        driver.quit()

一般来说,可以根据唯一id定位的元素不使用Xpath定位,所以第一种Xpath定位方法很少使用。

2、根据标签 + 元素属性名和值定位

在这里插入图片描述

    def test_18a(self):
        """xpath 标签+ 元素属性名和属性值 组合定位"""
        #     1.有时候同一个属性,同名的比较多,这时候可以通过标签筛选下,定位更准一点
        #     2.如果不想制定标签名称,可以用*号表示任意标签
        #     3.如果想制定具体某个标签,就可以直接写标签名称
        driver = webdriver.Chrome()
        driver.implicitly_wait(5)
        driver.get("https://www.baidu.com")
        # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

        driver.find_element_by_xpath('//input[@autocomplete="off"]').send_keys('python')
        driver.find_element_by_xpath('//input[@id="kw"]').send_keys('python')
        driver.find_element_by_xpath('//input[@name="wd"]').send_keys('python')

        time.sleep(1.5)
        driver.quit()
3、根据 层级关系+索引定位

在这里插入图片描述

    def test_19a(self):
        """xpath 层级-父定位子"""
        driver = webdriver.Chrom
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值