<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();
上面一行代码返回一个空值。
答案 0 :(得分: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属性。
答案 1 :(得分: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中的文本,并检查该值是否为“您要断言的内容”,如果不是,则会抛出错误消息“你是什么的希望您的错误消息显示为......!“
答案 2 :(得分:0)
在不同但相似的用例中,我的症状完全相同。对我来说,问题中提出的方法是正确的。但是的确,当使用chrome webdriver和gecko webdriver时,它返回一个空字符串。似乎更像是Chrome网络驱动程序中的错误? (我的版本:Chrome驱动程序:2.42,壁虎驱动程序:0.21)