繁体   English   中英

如何<span>使用 Selenium 和 Java 从标签中获取文本并在其他页面上使用此文本</span>

[英]How to get the text from <span> tag and use this text on other page using Selenium and Java

我想让文本包含在 span 标签中。

这里是 HTML

<div class="position">
<h1>
<span class="select-text">Some Text</span>
</h1>
</div>

我已经试过了

wd.findElement(By.xpath("//div[@class="position"]//h1//span")).getText();

但是我一直都收到这个错误并且我知道我做错了什么

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class="position"]//h1//span"}

附加问题:从该页面获取文本后,我需要确保该文本在另一页面上是否不可见。 如果您知道我如何实现它,我将不胜感激。

我相信您会发现带有 class 'position' 的 div 的 xpath 选择器应该是

div[contains(@class, 'position')]

要打印<span>中的Some Text 文本,您可以使用以下任一定位器策略

  • 使用cssSelectorgetAttribute("innerHTML")

     System.out.println(wd.findElement(By.cssSelector("div.position>h1>span.select-text")).getAttribute("innerHTML"));
  • 使用xpathgetText()

     System.out.println(wd.findElement(By.xpath("//div[@class='position']/h1/span[@class='select-text']")).getText());

理想情况下,要提取文本Some Text作为动态元素,您必须为visibilityOfElementLocated()引入WebDriverWait并且您可以使用以下任一定位器策略

  • 使用cssSelectorgetText()

     System.out.println(new WebDriverWait(wd, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.position>h1>span.select-text"))).getText());
  • 使用xpathgetAttribute("innerHTML")

     System.out.println(new WebDriverWait(wd, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='position']/h1/span[@class='select-text']"))).getAttribute("innerHTML"));

试试这个 xpath:

wd.findElement(By.xpath("//div[contains(@class='position')]/h1/span[contains(text(), 'Some Text') ]")).getText () ;

如果您需要检查此文本是否存在于另一个页面中,您需要编写通用的 xpath,它将捕获结果。 使用 if 循环将当前字符串与另一个文本进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM