python——By.XPATH

本文介绍了如何通过XPath在Selenuim中找到无唯一标识的页面元素,包括手动查找相对路径示例以及利用SelectorsHub插件辅助定位。作者展示了如何点击元素、全选内容、删除并输入新值的过程。
摘要由CSDN通过智能技术生成

一、大部分元素没有id、name唯一标识,此时就需要通过xpath

from selenuim import webdriver
from selenuim.webdriver.common.by import By

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://xxx')
time.sleep(3)

# 通过By.XPATH找到唯一页面元素后,先点击一下,全选所有内容后删除,再输入1234
driver.find_element(By.XPATH, "//*[@id=\"directorInputId\"]/input").click()
time.sleep(1)
pyautogui.hotkey("ctrl", "a")
pyautogui.hotkey("Backspace")
time.sleep(1)
driver.find_element(By.XPATH, "//*[@id=\"directorInputId\"]/input").send_keys("1234")

1、找xpath的方法1:人工找相对路径

        格式://类型[@属性='值'],后面加上/..表示找上一层的父节点,//表示找此节点下的所有

        例1:找搜索框://input[@class='nav-search-input']

        解释://input表示找所有的类型input,此时肯定有很多,@class表示找元素属性为class的,进一步缩小范围,@class='nav-search-input'表示元素属性值为:nav-search-input,此时就唯一了。如果想再稳一点,可以继续补充这么些://input[@class='nav-search-input'and@type='text']

        例2:找国创://a[text()='国创']

        解释:由于"国创"两个字是孤零零的,这种情况就是text()类型,而不是属性(如果是属性就要写成@属性)

        例3://div[@class='mini-header__title']/..

        解释://div[@class='mini-header__title']表示找到首页按钮,后面跟上/..则表示找到此节点的父节点。那么如果再在后面追加//div,则表示寻找该父节点下所有类型为div节点,此时就已发现唯一,就不需要继续写[@属性='值']来缩小范围了

2、找xpath的方法2:使用SelectorsHub插件

        直接在edge浏览器的拓展商店中搜索下载(安装后重启浏览器才会生效)

        如果想在chrome中使用,可以在edge中下载后导出(下图:打包拓展),再去chrome中导入(下图:加载解压的拓展)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值