如何使用 Python 中的 Selenium 来通过 xpath 识别第 n 个元素?


构建自定义 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
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://tutorialspoint.com/index.htm")
#to refresh the browser
driver.refresh()
# identifying the edit box with the help of position()
driver.find_element_by_xpath("//input[@type='text'][position()=1]").
send_keys("Selenium")
#to close the browser
driver.close()

使用索引的代码实现

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://tutorialspoint.com/plsql/plsql_basic_syntax.htm")
#to refresh the browser
driver.refresh()
# printing the first data in the row 2 of table with index
print(driver.find_element_by_xpath("//table/tbody/tr[2]/td[1]").text)
#to close the browser
driver.close()

上次更新: 2020-07-29

4K+ 次浏览

职业生涯起航

完成本课程获取认证

开始学习
广告