I have a curious case where the selenium chrome driver getText()
method (java) returns an empty string for some elements, even though it returns a non-empty string for other elements with the same xpath
. Here is a bit of the page.
<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>
for each of the inner tags, I can get valid return values for getTagName()
, getLocation()
, isEnabled()
, and isDisplayed()
. However, getText() returns an empty string for some of the divs.
Further, I notice that if I use the mac chrome driver, it is consistently the ‘Text_5’ for which getText()
returns an empty string. If I use the windows chrome driver, it is , it is consistently the ‘Text_2’ for which getText()
returns an empty string. If I use the firefox driver, getText()
returns the expected text from all the divs.
Has anyone else had this difficulty?
In my code, I use something like this…
ArrayList<WebElement> list = (ArrayList<WebElement>) driver.findElements(By.xpath(“my xPath here”));
for (WebElement e: list) System.out.println(e.getText());
As suggested below, here is the actual xPath
I am using. The page snippet above deals with the last two divs.
//*[@class='gwt-DialogBox']//tr[contains(@class,'data-grid-table-row')]//td[contains(@class,'lms-assignment-selection-wizard-cell')]/div/div
if you don't care about isDisplayed or scrolling position, you can also write
or without jquery