getText()不会在Selenium WebDriver中提供文本

问题描述 投票:1回答:3

<ul id="name" class="abc">
  <li class="def">
     <a class="ghi">
       <i style="background-color: transparent;">Welcome {{username}} </i>
     </a>
  </li>
</ul>

Selenium IDE:

storeText         //ul[@id="name"]/li/a/i       a
echo              ${a}

正确显示“欢迎{{username}}”文字。

但是,在Selenium WebDriver中,我无法获取文本。

driver.findElement(By.xpath("//ul[@id='name']/li/a/i")).getText();

上面的代码行返回一个空值。

selenium selenium-webdriver webdriver automated-tests
3个回答
1
投票

只需识别您的元素,只需使用getAttribute("value");将其存储在字符串变量中并打印该变量。

码:

WebElement element = driver.findElement(By.xpath(".//input[@id='password_2']"));
String str = element.getAttribute("value");
System.out.println("value:" + str);

希望这有效。它对我有用getAttribute("value")

总是尝试传递value属性。


0
投票

您显然首先需要使用任何定位器(这里我使用Xpath)获取文本并将其设置为字符串供以后使用。下面的代码将存储Xpath中包含的文本。

String nameOfStringGoesHere;
nameOfStringGoesHere=driver.findElement(By.xpath("//ul[@id="name"]/li/a/i ")).getText();`

在脚本中稍后对存储的文本进行断言

Assert.assertTrue("What you want your error message to appear as...!", nameOfStringGoesHere.contains("What you want to assert"));

在这个例子中,它将获取存储在xpath中的文本,并检查该值是否为“您想要断言的内容”,如果不是,则会抛出“您想要的错误”的错误消息消息显示为......!“


0
投票

我在不同但相似的用例中有完全相同的症状。对我来说,问题中提出的方法是正确的。但实际上,当使用chrome webdriver和gecko webdriver的正确结果时,它会返回一个空字符串。看起来更像是chrome webdriver中的一个bug? (我的版本:chrome驱动程序:2.42,gecko driver:0.21)

© www.soinside.com 2019 - 2024. All rights reserved.