WebElement getText () - пустая строка в Firefox, если элемент физически не виден на экране
Мои тесты Selenium Webdriver недавно прервались после обновления Firefox до версии 19. В некоторых моих тестах мне нужно было извлечь элементы, которые находятся на странице, но не видны в окне браузера, т.е. мне пришлось бы прокручивать вправо, чтобы увидеть их. После обновления до Firefox 19 (я обновил с 15, так что это может быть проблемой с 16), я могу получить текст только для элементов, которые я вижу в окне браузера. Мои xpaths правильно извлекают все элементы, например, из моего следующего кода:
private void buildColumnsMap(){
allColumnHeaders = new HashMap();
positionToColumnName = new ArrayList();
WebElement columnsRoot = driver.findElement(By.xpath(COLUMNS_ROOT_XPATH));
List columns = columnsRoot.findElements(By.xpath("./td/div/span"));
System.out.println("Number of columns found: " + columns.size());
for(int i = 0; i < columns.size(); ++i){
String columnName = columns.get(i).getText();
System.out.println("Column been inserted: " + columnName);
allColumnHeaders.put(columnName, i);
positionToColumnName.add(columnName);
}
}
Список "колонны» имеет размер 38, но в окне браузера я вижу только 10 столбцов без необходимости прокрутки, поэтому, когда я собираюсь поместить имена столбцов в мои объекты, я получаю 10 имен столбцов, а затем все пробелы.
Number of columns found: 38
Column been inserted: Date/Time
Column been inserted: Endpoint1
Column been inserted: Endpoint2
Column been inserted: Duration
Column been inserted: Codec1
Column been inserted: Codec2
Column been inserted: Avg MOS1
Column been inserted: Avg MOS2
Column been inserted: Avg Latency1 (ms)
Column been inserted: Avg Latency2 (ms)
Column been inserted: Avg Jitter1 (ms)
Column been inserted:
Column been inserted:
...
...
Это отлично сработало для меня в Firefox 15, но теперь не работает. Кто-нибудь сталкивался с чем-то подобным и нашел обходной путь? Или есть ли способвыделите элемент как заставить прокрутку и, следовательно, сделать ее видимой на экране?