在将 Firefox 升级到版本 19 后,我的 Selenium Webdriver 测试最近中断了。在我的几个测试中,我需要检索页面上但在浏览器窗口中不可见的元素,即我必须向右滚动才能看到它们。自从升级到 Firefox 19(我从 15 升级,所以这可能是自 16 以来的问题)我只能检索我可以在浏览器窗口上看到的元素的文本。我的 xpaths 正确检索所有元素,例如在我的以下代码中:
private void buildColumnsMap(){
allColumnHeaders = new HashMap<String,Integer>();
positionToColumnName = new ArrayList<String>();
WebElement columnsRoot = driver.findElement(By.xpath(COLUMNS_ROOT_XPATH));
List <WebElement> 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 中对我来说非常好,但现在已经坏了。有没有人遇到过类似的事情并找到了解决方法?或者有没有办法“滚动到一个元素”以强制滚动并因此使其在屏幕上可见?