我使用CSS选择器的find选择了这个td(我使用了firepath,它肯定选择了这个td元素)。它存储在名为newEntry的WebElement中。
<td>
06003d49-33d5-4aeb-bfe6-c2da3e686bac
<span id="absenceTypeform:abstable:0:absenceTypeBeanDescMsg"></span>
<input id="absenceTypeform:abstable:0:j_idt105" class="edit-row hidden" type="submit"
onclick="mojarra.ab(this,event,'action','@all','absenceTypeform:absenceTypediv',{'onevent':displayEditControlCallback});return false"
value="Edit" name="absenceTypeform:abstable:0:j_idt105">
</td>
如果我那么做
System.out.println("Text of new Entry " + newEntry.getText());
我期待它打印出来的&#39; 06003d49-33d5-4aeb-bfe6-c2da3e686bac&#39;这是td元素中的文本。但是印刷品的结果只是“新条目”的文字。没有附加任何东西。
答案 0 :(得分:0)
使用当前的HTML代码,您无法使用getText()
您可以使用javascript childNodes 从节点获取文本
以下是java
中的示例不要忘记添加返回,因为您需要将值返回给调用者
WebElement element=driver.findElement(By.xpath("//span[@id='absenceTypeform:abstable:0:absenceTypeBeanDescMsg']/ancestor::td"));
String expectedresult = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].childNodes[0].nodeValue",element);
System.out.println("expectedresult is "+expectedresult.trim());
我尝试使用上面的代码它工作正常
希望这可以帮助你...如果你有任何疑问,请回来