2015-05-27 256 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

相关问题