如何在 Python 中使用 Selenium 和 XPath 识别第 n 个元素?
selenium web driverautomation testingsoftware testing
构建自定义 XPath 的方法有很多种。
如果我们需要找到第 n 个元素,可以通过以下方法实现。XPath 中的 position() 方法。
假设页面上有两个 XPath 相同的编辑框,我们需要找到第一个元素,那么我们需要添加 position()=1。
语法 −
driver.find_element_by_xpath("//input[@type='text'][position()=1]")
使用方括号和花括号来表示索引。
假设我们需要找到表格的第三行,并且该行的自定义 XPath 应该使用 [3] 来表示。
表达式。
语法 −
driver.find_element_by_xpath("//table/tbody/tr[2]/td[2]")
示例
使用 position() 的代码实现
from selenium import webdriver
# 浏览器暴露一个可执行文件
# 通过 Selenium 测试,我们将调用该可执行文件,然后 # 调用实际的浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# 最大化浏览器窗口
driver.maximize_window()
# 使用 get 方法打开 URL
driver.get("https://www.tutorialspoint.com/index.htm")
# 刷新浏览器
driver.refresh()
# 使用 position() 定位编辑框
driver.find_element_by_xpath("//input[@type='text'][position()=1]".
send_keys("Selenium")
# 关闭浏览器
driver.close()
使用索引的代码实现
from selenium import webdriver
# 浏览器暴露一个可执行文件
# 通过 Selenium 测试,我们将调用该可执行文件,然后 # 调用实际的浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# 最大化浏览器窗口
driver.maximize_window()
# 使用 get 方法启动 URL
driver.get("https://www.tutorialspoint.com/plsql/plsql_basic_syntax.htm")
# 刷新浏览器
driver.refresh()
# 打印索引为 2 的表中的第一条数据
print(driver.find_element_by_xpath("//table/tbody/tr[2]/td[1]").text)
# 关闭浏览器
driver.close()

