如何使用 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()
广告