当前位置: 首页 > 知识库问答 >
问题:

在selenium中的findelement中找不到使用id的元素

谭灿
2023-03-14

我不能在selenium中找到使用"id"的元素,因为id在每个执行会话中都是随机变化的,所以我不会在下一次执行中得到相同的id。因为没有其他唯一的属性来标识元素。

代码示例

共有2个答案

夏侯华彩
2023-03-14

您可以使用XPath。

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

上面的XPath将找到包含文本“User ID”的div标记,并找到下一个div,这是必需的文本框。

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

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

driver.findElement(By.xpath(xpath));
雍阳
2023-03-14

您没有指定语言,所以我将为您提供Java。您可以通过使用CSS类来实现这一点,或者更好的选择(因为可能具有唯一性)是datalynxname

按CSS类

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

按属性

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

你真的应该读一读我骗了这个问题:按属性查找元素

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

 类似资料:
  • 我试图从html代码中获取子元素(卡号),其中html标记和类名相同。下面是html代码片段 下面是我尝试的标识符。但都返回了第一个卡号 "************4305”。 尝试了其他选项:这也返回了第一个卡号“************4305”。

  • 我面临的错误截图 上面的一行显示了错误,它表示。我在堆栈溢出上看到过这种问题,但解决方案对我没有帮助

  • 问题内容: 我有以下XPath: 当我在XPath Checker(Firefox扩展)中试用此XPath时,它一直都能完美运行。但是当我在Selenium中执行以下操作时: 它不断给我以下日志错误: 我为解决这个问题而疯狂。有人看到我的代码行有任何错误吗? 问题答案: 该查询字符串不应该像这样(根据javadoc api)吗?

  • 问题内容: 我正在尝试查找具有动态生成ID的元素。字符串的最后一部分是常量(“ ReportViewer_fixedTable”),因此我可以使用它来定位元素。我试图在XPath中使用正则表达式: 并通过CssSelector定位: 都不行。任何建议,将不胜感激。 问题答案: 那是因为需要修改css选择器,而您几乎就在那里… 从https://saucelabs.com/blog/selenium