当id是动态的时候,有没有办法通过使用tagName的id来捕获值

时间:2017-08-22 09:49:26

标签: java eclipse selenium selenium-webdriver

当id是动态时,是否有办法使用tagName的id捕获值。 例如:我的id值当前是id =“m_7959323670053369637verificationMsg”,但“verifyMsg”保持不变,只有数字不断变化。我知道这个问题不清楚,但我找不到更好的方法来表达它。 我实际上要做的是,我正在尝试捕获我在邮件中获得的值(验证码),但是在htmltag中id是动态的,并且它是我能指出的最接近的值。 我希望我的问题能得到理解。

3 个答案:

答案 0 :(得分:3)

您可以使用此类型元素的xpath来定位

//*[contains(@id,'verificationMsg')] 

//*[ends-with(@id,'verificationMsg')] 

答案 1 :(得分:1)

您也可以使用CSS标识符。以下将找到任何以

结尾的元素
[id$='verificationMsg']

这个也可以,但它检查字符串是否包含。

[id*='verificationMsg']

如果您需要以您开头的内容,可以使用以下

[id^='verificationMsg']

答案 2 :(得分:1)

您可以使用xpath的结尾方法。类似下面的例子 -

WebElement cls=ff.findElement(By.xpath("//*[ends-with(@id,'verificationMsg')]"));