如果我通过 Selenium Webdriver 和 Java 知道相应的文本,如何提取 DOM 元素的 ID 属性

Posted

技术标签:

【中文标题】如果我通过 Selenium Webdriver 和 Java 知道相应的文本,如何提取 DOM 元素的 ID 属性【英文标题】:How to extract the ID attribute of a DOM element, if i know corresponding text through Selenium Webdriver and Java 【发布时间】:2019-07-23 07:47:42 【问题描述】:

我使用了以下代码:

driver.getPageSource().contains("My value in text box");

这会让我知道,元素是否存在于 dom 中。

现在,我需要知道,包含文本框“我在文本框中的值”的值。这个文本框的id是什么。

【问题讨论】:

How do I find an element that contains specific text in Selenium Webdriver (Python)?的可能重复 【参考方案1】:

要提取dom 元素id,您无需调用getPageSource()。您可以简单地使用getAttribute() 方法,如下所示:

String elementID = driver.findElement(By.xpath("//*[contains(text(),'My value in text box')]")).getAttribute("id");

【讨论】:

请注意:有时文本包含在标签中,而不是输入元素中。但是,该标签通常具有一个“for”属性,其中包含输入元素的 ID。我会先检查返回的 xpath 的标签,看看它是否是标签,然后通过 ID 获取实际输入,否则假设它是您要查找的内容是相当安全的。

以上是关于如果我通过 Selenium Webdriver 和 Java 知道相应的文本,如何提取 DOM 元素的 ID 属性的主要内容,如果未能解决你的问题,请参考以下文章

修改 selenium webdriver 的参数

如何使用 webdriver selenium 从标签中单击按钮

如何使用selenium Webdriver验证页面中是否存在重复文本

如何使用 selenium webdriver 发送 cookie?

当窗口在 Chrome 87 的后台时,Webdriver.io/Selenium 测试失败

Selenium WebDriver的使用