程序终止使用webrunner进入文本框

时间:2016-10-24 20:16:28

标签: java selenium webdriver

public static void main(String[] args) {


    System.setProperty("webdriver.chrome.driver", "C://chromedriver//chromedriver.exe");
    WebDriver driver = new ChromeDriver();

     //Maximize the Browser window
    driver.manage().window().maximize();

    driver.get("https://google.com");

    WebElement signin = driver.findElement(By.id("gb_70"));
    signin.click();

    WebElement username = driver.findElement(By.id("Email"));
    username.sendKeys("email@gmail.com");

    WebElement next = driver.findElement(By.id("next"));
    next.click();

    WebElement password = driver.findElement(By.id("Passwd"));
    password.sendKeys("password");

    WebElement next1 = driver.findElement(By.id("signIn"));
    next1.click();

我的程序在到达密码输入屏幕时终止..它说

线程“main”中的异常org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“method”:“id”,“selector”:“Passwd”}   (会议信息:chrome = 53.0.2785.143)

但是,我尝试过ID元素和Xpath元素,它们都是正确的

: (

1 个答案:

答案 0 :(得分:1)

可能你需要在next.click()之后等待;命令。单击下一步按钮后,您的输入字段尚未加载。所以,等待元素加载并将文本放入其中。

修改

您可以使用显式等待。这是Thread.sleep()的更好方法。指定等待元素的最长时间。如果在元素可见之前经过了指定的时间,那么它将抛出异常。

代码段:

WebDriverWait wait = new WebDriverWait(driver, 30); // waiting for maxiumum of 30 seconds

wait.until(ExpectedConditions.presenceOfElementLocated(By.id("Password")));