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