使用Selenium获取Javascript onclick的结果

时间:2016-01-31 23:03:10

标签: javascript java selenium

嗨,我是Selenium的新手,不确定我是否以正确的方式使用它。

我要做的是从网页获取一些数据。由于javascript函数expand_all(),此数据被放入一个空白div中。我有一个“a”链接,它调用页面上的javascript函数,如下所示:

<a href="javascript:void(0)" onclick="expand_all()" class="expand-all" id="btn_expand">Show stuff</a>

我现在要做的是使用Selenium单击该按钮,然后获取添加到div中的数据。这是我到目前为止(基于selenium的“入门”代码):

System.out.println(driver.getPageSource());

driver.findElement(By.className("expand-all")).click();

System.out.println(driver.getPageSource());

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
                int i;

                public Boolean apply(WebDriver d) {
                    i = d.findElements(By.tagName("table")).size();
                    System.out.println(i);
                    return (i == 8);
                }
            });

当页面中可见表的数量为8时,等待应该中断。(div用表填充),但数字永远不会改变。并且在调用click函数之前和之后页面源完全相同...

所以我的问题是 - 我怎么会出错?硒可以做我想做的事吗?

0 个答案:

没有答案