У меня есть любопытный случай, когда метод 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>
для каждого из внутренних тегов, я могу получить действительные возвращаемые значения для getTagName()
, getLocation()
, isEnabled()
и isDisplayed()
. Однако getText() возвращает пустую строку для некоторых из div.
Кроме того, я замечаю, что если я использую драйвер mac chrome, он всегда является "Text_5", для которого getText()
возвращает пустую строку. Если я использую драйвер chrome для Windows, это, как правило, "Text_2", для которого getText()
возвращает пустую строку. Если я использую драйвер 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