xpath定位的五种方法

xpath定位:
绝对路径:/开头是绝对路径(获取方法:右击检查,element定位中右击选择复制->复制xpath/复制完整xpath)
/html/body/div[2]/div[1]/table/tbody/tr/td[1]/div[1]/a/img
相对路径://开头是相对路径
按ctrl+F键进行xpath查找
1.相对路径+索引定位:
例://form/span[1]/input
span[1]代表含有多个span标签的第一个标签

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.XPATH, "//form/span[1]/input").send_keys("hello kitty")
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python

2.相对路径+属性定位
在某一标签的元素中找到唯一属性以便精确定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.XPATH, "//input[@autocomplete='off']").send_keys("hello kitty")
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python

3.相对路径+通配符定位
在任意标签的元素中找到唯一属性以便精确定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.XPATH, "//*[@autocomplete='off']").send_keys("hello kitty")
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python

4.相对路径+部分属性值定位
4.1从开头开始截取部分属性

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.XPATH, "//*[starts-with(@autocomplete,'of')]").send_keys("hello kitty")
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python

4.2从中间开始截取部分属性

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.XPATH, "//*[substring(@autocomplete,2)='ff']").send_keys("hello kitty")
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python

5.相对路径+文本定位
当文本内容为非超链接时,用此方法定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time  # 添加时间模块
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
value=driver.find_element(By.XPATH, "//span[text()='互联网新闻信息服务许可证11220180008']").get_attribute('class')
print(value)
# 修正:添加等待防止立即关闭
time.sleep(15)  # 保持浏览器打开15秒

# 可选方案:使用input阻塞程序结束
# input("按回车键结束...")

driver.quit()  # 建议最后主动退出浏览器python
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值