相关疑难解决方法(0)

使用WebDriver暂时绕过隐式等待

当使用隐式等待时,正如这里所建议的那样,我仍然有时想要断言元素的直接不可见性或不存在.

换句话说,我知道应该隐藏一些元素,并且希望我的测试能够快速地进行断言,而不需要花费几秒钟因为(否则有用)隐式等待.

我试过的一件事就是像这样的辅助方法:

// NB: doesn't seem to do what I want
private boolean isElementHiddenNow(String id) {
    WebDriverWait zeroWait = new WebDriverWait(driver, 0);
    ExpectedCondition<Boolean> c = invisibilityOfElementLocated(By.id(id));
    try {
        zeroWait.until(c);
        return true;
    } catch (TimeoutException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在上面的代码中,调用until()在隐式等待时间过去后才返回,即它不能完成我想要的操作.

到目前为止,这是我发现的唯一方法:

@Test
public void checkThatSomethingIsNotVisible()  {
    turnOffImplicitWaits();
    // ... the actual test
    turnOnImplicitWaits();
}
Run Code Online (Sandbox Code Playgroud)

...例如turnOffImplicitWaits(),Selenium超类中的助手:

protected void turnOffImplicitWaits() {
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
} …
Run Code Online (Sandbox Code Playgroud)

java selenium webdriver wait selenium-webdriver

22
推荐指数
3
解决办法
1万
查看次数

Selenium 2:中断页面加载

点击带有FirefoxDriver的Selenium 2.0b3 Java API的按钮时出现问题.单击该按钮会将表单发送到Web服务器,然后由于表单提交,浏览器将转到新页面.

当使用element.click()单击元素时,selenium正在等待浏览器完成其操作.浏览器等待页面加载完成.但是,由于某些广告请求,有时页面加载会花费大量时间.

如何解决element.click()和页面加载之间的同步问题?

编辑:

正如WebElement javadoc中所解释的那样:

单击此元素.如果这导致加载新页面,则此方法将阻止,直到页面加载为止.

谢谢

java selenium-webdriver

7
推荐指数
1
解决办法
2444
查看次数

使用 Selenium webdriver 登录 Gmail 失败。显示未找到密码的元素

public static void main(String[] args){
    System.setProperty("webdriver.chrome.driver","E:/softwares/chromedriver_win32/chromedriver.exe");
    WebDriver gmail= new ChromeDriver();

    gmail.get("https://www.gmail.co.in"); 
    gmail.findElement(By.id("Email")).sendKeys("abcd");
    gmail.findElement(By.id("next")).click();
    gmail.findElement(By.id("Passwd")).sendKeys("xyz");
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×3

selenium-webdriver ×3

selenium ×2

wait ×1

webdriver ×1