“注册为新用户”链接文本出现在主页上,一旦webdriver获取它(driver.get)。但是它仍然等待整个页面加载以执行下面的行。
driver.findelement(By.linkText("Register as new user")).click();
如果webdriver出现在页面上,无论是否出现其他元素,webdriver如何能够立即点击该元素。 我正在使用:JAVA,Ubuntu。
答案 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();