在selenium中通过xpath查找元素,部分匹配

时间:2014-03-19 22:21:14

标签: python selenium xpath

我有一个代码来查找如下所示的元素:

driver.find_element_by_xpath("//tr[@id='playerListPlayerId_9874']/td[7]/a").click()

我希望只能使用以下方式找到它:

driver.find_element_by_xpath("tr[@id='playerListPlayerId_9874']").click()

但这不起作用。我基本上不想处理td [7]。这可能吗?

2 个答案:

答案 0 :(得分:4)

如果该表格行中只有一个链接,您可以使用:

driver.find_element_by_xpath("//tr[@id='playerListPlayerId_9874']//a").click()

如果该表格行中有多个链接,您可能需要在<a>元素或特殊class属性中添加ID,并将其用于选择:

由id:

driver.find_element_by_xpath("//a[@id='THE_ID']").click()

按类:

driver.find_element_by_xpath("//tr[@id='playerListPlayerId_9874']//a[@class='THE_CLASS']").click()

或者如果分配了多个类:

driver.find_element_by_xpath("//tr[@id='playerListPlayerId_9874']//a[contains(@class,'THE_CLASS'])]").click()

答案 1 :(得分:0)

如果有多个链接具有相同的xpath,则可能需要添加索引,因为结果是列表:

driver.find_element_by_xpath("//tr[@id='playerListPlayerId_9874']//a")[0].click()