el = driver.find_elements_by_xpath("//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')]")
我寫了上面的xpath來找到web元素。它給了我三個結果。我想點擊第二個Web元素。你能告訴我如何在python硒中完成嗎?如何點擊python硒元素列表中的第二個元素?
el = driver.find_elements_by_xpath("//div[contains(@class,'statsprogramsgridmodal')]//div[contains(@class,'ui-grid-icon-ok')]")
我寫了上面的xpath來找到web元素。它給了我三個結果。我想點擊第二個Web元素。你能告訴我如何在python硒中完成嗎?如何點擊python硒元素列表中的第二個元素?
使用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]
您的第一個解決方案確實對我有用。唯一的問題是索引編號。對於我的情況,如果我在xpath之後設置[2]索引,它會選擇第三個元素,[1]選擇第二個元素,[0]索引選擇第一個元素。您只需更改它,我會接受您的回答 –
@Shoaib Akhtar,XPath採用基本1索引,並且該命令返回基本0數組。你能再檢查一次嗎?請注意,'(// xxx/xxx)[2]'返回第二個結果,而'// xxx/xxx [2]'返回第二個孩子。 –
感謝您的解釋。我沒有把xpath放在大括號driver.find_element_by_xpath(「(// xxx/xxx)[2]」)中。您的解決方案運行良好。謝謝 –
你可以試試:
driver.find_element_by_xpath('//yourXpath/following-sibling::node()').click()
或
driver.find_element_by_xpath('//yourXpath/following-sibling::theTag').click()
凡theTag是任何你想要的:格,TR,UL,...
哪個第二個元素?兄弟?你能給我們一個HTML例子嗎? – Wandrille
這不是兄弟姐妹,所有三個都在同一水平 –