如何在可点击时立即点击元素,而不是加载整个页面?

时间:2013-03-21 10:20:48

标签: java webdriver

“注册为新用户”链接文本出现在主页上,一旦webdriver获取它(driver.get)。但是它仍然等待整个页面加载以执行下面的行。

driver.findelement(By.linkText("Register as new user")).click();

如果webdriver出现在页面上,无论是否出现其他元素,webdriver如何能够立即点击该元素。 我正在使用:JAVA,Ubuntu。

3 个答案:

答案 0 :(得分:2)

我不确定隐式等待是否会使驱动程序等到页面完全加载,尤其是在打开URL之后。但值得尝试明确的等待。下面的代码使驱动程序等待元素变为可点击,然后单击它。如果元素在指定时间内没有变为可点击(在下面的例子中它被设置为30秒),那么驱动程序将抛出 TimeoutException

WebDriverWait wait = new WebDriverWait(driver, 30//unit time in seconds);

wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Register as new user"))).click();

答案 1 :(得分:0)

您可以更改FireFoxDriver配置文件设置,使Firefox在调用 .click

后不等待整页加载
        FirefoxProfile profile = new FirefoxProfile();
        profile.SetPreference("webdriver.load.strategy", "unstable");

答案 2 :(得分:0)

将wait.until ...声明括起来如下:
turnOffImplicitWaits();
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("注册为新用户"))。click();
turnOnImplicitWaits();

相关问题