当前位置: 首页 > 面试题库 >

如何使用selenium获取WebElement文本

闻修筠
2023-03-14
问题内容

请参阅以下元素:

<div class="success"><button class="close" data-dismiss="alert" type="button">×</button>
User 'MyUser' deleted successfully</div>

找到我的元素

driver.findElement(By.cssSelector("div.success")

因此,找到后div并使用带有selenium getTextgetAttribute("innerHTML")return 的文本:

×
User 'MyUser' deleted successfully

所以我的问题是如何只获得没有这一点的最后一行 x


问题答案:

所需的文本出现在文本节点中,并且无法直接使用Selenium检索,因为它仅支持元素节点。

您可以删除开头:

String buttonText = driver.findElement(By.cssSelector("div.success > button")).getText();
String fullText = driver.findElement(By.cssSelector("div.success")).getText();
String text = fullText.substring(buttonText.length());

您还可以innerHTML使用正则表达式从中提取所需的内容:

String innerText = driver.findElement(By.cssSelector("div.success")).getAttribute("innerHTML");
String text = innerText.replaceFirst(".+?</button>([^>]+).*", "$1").trim();

或使用一段JavaScript:

String text = (String)((JavascriptExecutor)driver).executeScript(
    "return document.querySelector('div.success > button').nextSibling.textContent;");


 类似资料:
  • 请参阅以下元素: 找到我的元素: 因此,在找到这个并使用selenium和或获取文本后,返回: 所以我的问题是如何只得到最后一行没有这个

  • 问题内容: 请参阅以下元素: 找到我的元素: 因此,找到后并使用带有selenium 或return 的文本: 所以我的问题是如何在没有此情况的情况下仅获得最后一行 问题答案: 所需的文本出现在文本节点中,并且无法直接使用Selenium检索,因为它仅支持元素节点。 您可以删除开头: 您还可以使用正则表达式从中提取所需的内容: 或使用一段JavaScript:

  • 问题内容: 这是我从Selenium WebElement获得价值的测试代码。 结果就是这样,这需要很长时间。我想快点。 1.跳过一些元素 如果价值不是我想要的。跳过以(继续)获得另一个获取值。 2.通过xpath过滤 此示例获取所有元素(// *)。因此,当我得到它时,我过滤了元素,这是个好方法。但是我仍然有几百个要素,我需要最小化处理时间。 3,多线程 我测试了Runnable Callabl

  • 问题内容: 我想找到使用XPath基于文本的任何WebElement。 基本上,我要通过文本检索的WebElement包含一个输入元素。 我目前正在使用, 找不到上面的WebElement,但通常可以检索所有 其他Web元素。 甚至, 没有给我任何结果。虽然我对精确的文字匹配感兴趣。 我正在寻找一种通过文本来查找Web元素的方法,该文本 对Web元素内部存在的元素不重要。如果文本匹配,则应返回 W

  • 我想找到任何基于使用XPath的文本的WebElement。 我感兴趣的网页元素, 它的HTML, 基本上,我试图通过文本检索的WebElement包含一个输入元素。 我目前使用的, 它找不到上面的WebElement,但通常可以检索所有其他web元素。 即使 没有给我任何结果。虽然我对精确的文本匹配感兴趣。 我正在寻找一种通过文本查找web元素的方法,该文本与web元素中存在的元素无关。如果文本