无法在selenium的findelement中使用id查找元素

时间:2015-10-28 11:06:15

标签: selenium automation

我无法在selenium中使用“id”找到元素,因为id在每个执行会话中随机更改,因此我在下次执行时没有得到相同的id。 由于没有其他独特的属性可以识别元素。

code sample

2 个答案:

答案 0 :(得分:0)

你没有指定语言,所以我会给你Java。您可以使用CSS类来完成此操作,或者可能更好的选择(因为可能的唯一性)是data-lynx-name

通过CSS类

driver.findElement(By.cssSelector("div.http-lynx-json-org-text-input"));

按属性

driver.findElement(By.cssSelector("div[data-lynx-name='username']"));

你真的应该读一下我把这个问题骗到的问题: Find element by attribute

还阅读有关CSS选择器的更多信息, http://www.w3.org/TR/selectors/#selectors

答案 1 :(得分:0)

您可以使用XPath。

String xpath = //div[@data-lynx-name='usernameLabel'][text='User ID']/following-sibling::div[1]

上述XPath将会找到包含文字'用户ID'的div标记。并找到下一个div,这是必需的文本框。

您似乎甚至可以使用属性" data-lynx-name'直接textbox div标记的属性。

String xpath = //div[@data-lynx-name='username'] 

driver.findElement(By.xpath(xpath));