切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
selenium查找元素text()文本定位常用写法
作者:ych
例如 源码里面含有这样的: ```
+ 新增一题
``` 这个是一个按钮,需要识别,并点击 ``` add_topic = driver.find_element_by_xpath("//a[text()='+ 新增一题']") add_topic.click() //标识相对位置,a开头
百度搜索
xpath写法为 //a[text()='百度搜索'] 或者 //a[contains(text(),"百度搜索")] ``` 类似的方法还有 1、start-with 查找元素属性以某某开始的元素,如 ``` //input[starts-with(@name,'name2')] 查找name属性中开始位置包含'name1'关键字的页面元素 ``` 2、contains 含有 ``` //input[contains(@name,'topic')] 查找name属性中包含topic关键字的页面元素 ``` #### 总结 ``` 1、全部文字 java:driver.findElement(By.xpath("//[text()=’退出’]"); python:browser.find_element_by_xpath("//[text()='花呗套现']").click() 2、部分文字 java:driver.findElement(By.xpath("//a[contains(text(), ’退出’)]"); python:browser.find_element_by_xpath("//*[contains(text(),'花呗')]").click() ``` ### 其他 ``` XPath即XML路径语言,支持从xml或html中查找元素节点,使用XPath完全可以替代其他定位放式,如: find_element_by_xpath('//*[@id=""]')等同于find_element_by_id("") find_element_by_xpath('//*[@name=""]')等同于find_element_by_name("") find_element_by_xpath('//*[@class=""]')等同于find_element_by_class_name("") find_element_by_xpath('//标签名')等同于find_element_by_tag_name("标签名") find_element_by_xpath('//a[contains(text(),"")]')等同于find_element_by_link_text("") find_element_by_xpath('//*[@id=""]')等同于find_element_by_partial_link_text("") 需要通过一组元素或分层定位的也可以直接使用XPath直接定位到 从浏览器复制出的XPath有可能不靠谱,所以我们要学会XPath的语法 路径# /绝对路径: /html/body/div //相对路径: //div/form //*/form 路径中可以使用 *代表任意标签 .当前路径: //div/form/. 等同于//div/form ..上级路径: //div/form/.. 等同于//div 索引# 从1开始: /html/body/div[2] //div[1]/form 属性# @属性名:定位包含特定属性名的标签, 如//input[@class] @属性名="属性值":定位特定属性名=属性值的标签,如//input[@id="kw"] @*="属性值":定位任意属性名=属性值的标签, 如 //input[@*='kw'] 多属性结合定位://input[@id="kw" and @class='kw-class']或//input[@id="kw"][@class="kw-class"] (and处也支持使用or,表示或) 函数# text():标签中的文本值,如//a[text()="百度首页走起~"] contains(): 包含,如//a[contains(text(), "百度首页")] starts-with(): 以**开头,如//a[starts-with(text(), "百度"] last(): 最后一个, 如//div[last()] 轴# parent: 父标签 child:子标签 following: 后面的,如://*[text()="用户名"]/following::input[1] # 紧邻文本为用户名的输入框 preceding:前面的 ```
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1