右侧
黑客技术
当前位置:网站首页 > 网络黑客 > 正文

xpathtext文本模糊定位的简单介绍

作者:hacker发布时间:2023-03-11分类:网络黑客浏览:100评论:5


导读:XPath匹配含有指定文本的标签---contains的用法取包含'卷期号'三个字的节点//ul[@id='side-menu']/li/a[contains(text(...

XPath匹配含有指定文本的标签---contains的用法

取包含 '卷期号' 三个字的节点 //ul[@id='side-menu']/li/a[contains(text(),"卷期号")]

取其内容 //ul[@id='side-menu']/li/a[contains(text(), '卷期号')]/text()

通过文本内容精准定位元素。可能由于页面内容有空格,经常定位不到元素

driver.find_element_by_xpath(‘//div[text()="活动服务"]‘) # 若要定位其它标签元素(如:td,span等),只需要替换div即可

driver.find_element_by_xpath(‘//div[contains(text(),"活动服务")]‘)

xpath("android.widget.EditText[@index='7']").click()无法定位元素,而且用class定位控件值都是一样的

1.如果元素text是唯一的,可以通过text文本定位

//*[@text=’text文本属性’]

# 定位text

driver.find_element_by_xpath("//*[@text='扫一扫']").click()

2.如果元素id是唯一的,也可以id属性定位

//*[@resource-id=’id属性’]

# 定位 resource-id

driver.find_element_by_xpath("//*[@resource-id='com.taobao.taobao:id/tv_scan_text']").click()

同样可以联合上面两种方式定位,如下

# 也可以联合@resource-id属性和@text文本属性来下定位

driver.find_element_by_xpth("//*[@resource-id='com.taobao.taobao:id/tv_scan_text'][@text='扫一扫']").click()

3.class属性唯一的话,同样可以通过class属性定位,有两种方法

第一种: //class属性

# 定位搜索框 //class属性

driver.find_element_by_xpath("//android.widget.EditText").click()

第二种: //*[@class=’class属性’]

# 定位搜索框 //*[@class='a83f-6d84-7d76-92ae class属性']

driver.find_element_by_xpath("//*[@class='6d84-7d76-92ae-0b7a android.widget.EditText']").click()

4.通过content-desc属性定位

//*[@content-desc=’desc的文本’]

复制代码

#点登录/注册

driver.find_element_by_xpath("//*[@text='注册/登录']").click()

time.sleep(3)

#content-desc定位

driver.find_element_by_xpath("//*[@content-desc='帮助']").click()

复制代码

contains模糊定位

1)、contains是模糊匹配的定位方法,对于一个元素的id或者text不是固定的,但有一部分是固定的,这种就可以模糊匹配。

XPath怎样根据一个元素定位另外一个元素?

1、Xpath也可以使用元素的属性值来定位,以百度输入框和搜索按钮为例

2、通过id属性值来定位:注释://表示在当前页面的某个目录下,input表示定位元素的标签名,[@id='kw'],表示这个元素的id属性值等于kw

3、通过name和class属性值来定位:如果不想指定标签名,则也可以用*代替,当然,使用Xpath不局限于id,name和class这三个属性值,元素的任意属性值都可以使用,只要它是唯一的标识元素

4、层级与属性结合。如果一个元素本身没有可以唯一标识这个元素的属性值,那么我们可以找到其上一级元素,如果它的上一级有唯一可以标识属性的值,也可以拿来使用

5、使用逻辑运算符。如果一个属性不能唯一地区分一个元素,我们还可以使用逻辑运算符连接多个属性来查找元素。例如,假如要查找第一行元素,则:

标签:xpathtext文本模糊定位


已有5位网友发表了看法:

  • 访客

    访客  评论于 2023-03-11 13:43:59  回复

    XPath匹配含有指定文本的标签---contains的用法取包含 '卷期号' 三个字的节点 //ul[@id='side-menu']/li/a[contains(text(),"卷期号")] 取其内容 //ul[@id='side-menu']/li/a[contains(text(

  • 访客

    访客  评论于 2023-03-11 19:03:33  回复

    element_by_xpath("//*[@resource-id='com.taobao.taobao:id/tv_scan_text']").click() 同样可以联合上面两种方式定位,如下# 也可以联合@resource-id属性和@tex

  • 访客

    访客  评论于 2023-03-11 13:23:54  回复

    以使用,只要它是唯一的标识元素4、层级与属性结合。如果一个元素本身没有可以唯一标识这个元素的属性值,那么我们可以找到其上一级元素,如果它的上一级有唯一可以标识属性的值,也可以拿来使用5、使用逻辑运算符。如果一个属性不能唯一地区分一个元素,我们还可以使用逻辑运算符连接多个属性来查找元素。例如,假如要

  • 访客

    访客  评论于 2023-03-11 15:57:24  回复

    假如要查找第一行元素,则:

  • 访客

    访客  评论于 2023-03-11 16:01:21  回复

    XPath匹配含有指定文本的标签---contains的用法取包含 '卷期号' 三个字的节点 //ul[@id='side-menu']/li/a[contains(text(),"卷期号")]

欢迎 发表评论:

网络黑客排行
最近发表
标签列表