2015-05-27 214 views
0

好吧,我有一個帶有3個選項卡的iframe。在每個選項卡上都有一個具有相同ID,類別但不同值的元素。我應該如何分別找到他們每個人?Selenium/python - 定位一個具有相同ID的元素

+0

可能使用XPath或CSS。如果可能的話,提供所有三個的'html' – Saifur

+1

值得考慮:同一個頁面上的'id',通常被認爲是一個錯誤。 – SiKing

+0

您應該考慮更改HTML以避免根據HTML規範重複標識。 – segalaj

回答

0

首先,請確保您知道如何deal with iframes with Selenium,並且它不是您的第一個阻擋者。

然後回答你的問題,你可以:

  • 使用XPath選擇:

    • *[@id="tabid"][1]將選擇id爲tabid的第一要素。
    • *[@id="tabid"][2]將選擇ID爲tabid的第二個元素。
  • 使用CSS選擇:

    • #tabid:nth-child(1)
    • #tabid:nth-child(2)
+0

更具體地說Tab1有一個button1(id = submit,value = xx)Tab 2有一個button2(id = submit,value = xy),..我如何找到例如:button 2? – dzvert

+0

'// * [@ id =「tabid」] [2]/button [@ id ='submit']'或直接輸入'// * button [@ id ='submit'] [2]'。 –

+0

我試過了:driver.find_element_by_xpath(「// * input [@ id ='submit'] [2]」)。click()但是我正在獲取語法錯誤 – dzvert

相關問題