我有一个代码来查找如下所示的元素:
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]。这可能吗?
答案 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()