我有一个有趣的问题,就是使用selenium chrome driver的getText()
方法(Java)对一些元素返回空字符串,而对于其他具有相同xpath
的元素则返回非空字符串。以下是页面的一部分:
<div __gwt_cell="cell-gwt-uid-223" style="outline-style:none;">
<div>Text_1</div>
<div>Text_2</div>
<div>Text_3</div>
<div>Text_4</div>
<div>Text_5</div>
<div>Text_6</div>
</div>
对于每个内部的 <div>
标签,我可以获得 getTagName()
、getLocation()
、isEnabled()
和 isDisplayed()
方法的有效返回值。然而,getText()
方法在某些 <div>
上返回空字符串。
此外,我注意到如果我使用 Mac Chrome 驱动程序,则始终是“Text_5”返回空字符串;如果我使用 Windows Chrome 驱动程序,则始终是“Text_2”返回空字符串。但如果我使用 Firefox 驱动程序,则 getText()
方法可以从所有 <div>
中返回预期的文本。
有其他人遇到过这个问题吗?
在我的代码中,我使用类似下面的方法...
ArrayList<WebElement> list = (ArrayList<WebElement>) driver.findElements(By.xpath(“my xPath here”));
for (WebElement e: list) System.out.println(e.getText());
如下所建议,这是我正在使用的实际xPath
。上面的页面片段涉及最后两个
//*[@class='gwt-DialogBox']//tr[contains(@class,'data-grid-table-row')]//td[contains(@class,'lms-assignment-selection-wizard-cell')]/div/div