登录不适用于selenium webdriver 3.4.0版本

时间:2017-05-14 13:16:09

标签: java selenium selenium-webdriver

登录无法在selenium webdriver 3.4.0版本中使用。

源代码:

    public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub

    System.setProperty("webdriver.ie.driver", "D:\\Jars\\IEDriverServer.exe");
    InternetExplorerDriver driver= new InternetExplorerDriver();
    // Navigating to URL
            driver.navigate().to("https://login.yahoo.com/");

            //finding Username field
            driver.findElement(By.id("login-username")).sendKeys("randomusername");

            // Clicking on Next button
            driver.findElement(By.id("login-signin")).click();

            //Thread.sleep(3000);

            // Entering the password field
            driver.findElement(By.id("login-passwd")).sendKeys("random_password");

            // Clicking on Signin button
            driver.findElement(By.id("login-signin")).click();

            // Driver Closing
            driver.close();

}

请建议我解决。谢谢。

1 个答案:

答案 0 :(得分:0)

您输入的登录ID后,您的密码字段变得陈旧,您的代码无效;所以为了避免使用陈旧元素,你必须检查该元素是否在DOM中再次出现;因此使用一些明确的等待如下:

  WebDriverWait wait = new WebDriverWait(driver,10);
  wait.until(ExpectedConditions.stalenessOf(driver.findElement(By.id("login-passwd"))));

  driver.findElement(By.id("login-passwd")).sendKeys("random_password");