Selenium WebDriver - 如何在动态id时获取元素的id?

时间:2016-02-12 00:29:30

标签: java html selenium selenium-webdriver

我在这个元素(下拉图片)中遇到了问题,我尝试了这些元素,但这些元素都没有用,可能是因为这两个元素是相同的,而且它们的id是动态的。登记/> 我尝试获得绝对的Xpath,它的工作原理。 (但这不是一个好主意)

这是我到目前为止尝试的元素:

//div[@class='drop-image']
//div[contains(@class,'drop-image')]

任何帮助将不胜感激。
多谢你们!

2 个答案:

答案 0 :(得分:1)

您的父div ID不同..您可以使用相同的.. 您的第一个元素父ID的子字符串为BaseCurrencyCombo,而您的第二个元素具有TargetCurrencyCombo

第一个元素

//div[@id=ct100.....BaseCurrencyCombo]//div[@class='drop-image']

第二个元素

//div[@id=ct100.....TargetCurrencyCombo]//div[@class='drop-image']

OR

//div[@class='drop-image'][1]

请在上面的两个Xpath中输入正确/完整的ID ..它太长了;)

希望它会对你有所帮助:)。

答案 1 :(得分:1)

你说div id是动态的......但是你已经观察到第一部分(USD)在div BaseCurrencyCombo下有一个叫ID的东西而对于第二部分(EUR)它是TargetCurrencyCombo
所以我不认为这两个会改变。

您可以尝试这些xpath:

1>//div[contains(@id,'BaseCurrencyCombo')]//div[contains(@class,'drop-image')]
2>//div[contains(@id,'TargetCurrencyCombo')]//div[contains(@class,'drop-image')]