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元素,它们都是正确的
: (
答案 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")));