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