如何在python selenium中点击web元素列表中的第二个元素?

时间:2017-10-06 10:08:42

标签: python selenium

el = driver.find_elements_by_xpath("//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')]")

我在xpath上面写了一下找到web元素。它给了我三个结果。我想点击第二个网络元素。你能告诉我如何在python selenium中完成它吗?

2 个答案:

答案 0 :(得分:2)

使用xpath从所有结果返回第二个匹配:

el = driver.find_element_by_xpath(
  "(//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')])[2]")

使用xpath从同一级别返回第二个子节点:

el = driver.find_element_by_xpath(
  "//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')][2]")

或使用xpath返回多个元素:

el = driver.find_elements_by_xpath(
  "//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')]")[1]

或使用css选择器返回多个元素:

el = driver.find_elements_by_css_selector(
  "div[class*='statsprogramsgridmodal'] div[class*='ui-grid-icon-ok']")[1]

答案 1 :(得分:0)

你可以尝试:

driver.find_element_by_xpath('//yourXpath/following-sibling::node()').click()

driver.find_element_by_xpath('//yourXpath/following-sibling::theTag').click()

theTag是你想要的任何东西:div,tr,ul,......