我正在 Eclipse 中使用 Selenium WebDriver 为登录页面编写测试。 出于安全原因,登录页面上的密码字段首先作为文本字段 (passwordText) 加载。但是,当用户将光标置于用户名或密码字段时,密码字段类型将使用 javascript 更改为密码(密码)。
问题是我的 Selenium 测试找不到密码字段。它返回错误'org.openqa.selenium.NoSuchElementException:无法定位元素:{“method”:“id”,“selector”:“password”}'
这是我正在使用的代码:
driver.get(baseUrl + "/login");
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("username1");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("mypassword");
如何编写代码才能正确找到密码字段?
最佳答案
我已经找到了答案,并将其添加到此处以供其他遇到类似问题的人使用。
解决方案是首先通过其第一个 id(密码文本)找到该字段,然后使用光标焦点后更改为的 id(密码)将 Keys 发送到该字段。
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("username1");
driver.findElement(By.id("passwordText")).clear();
driver.findElement(By.id("password")).sendKeys("mypassword");
关于java - Selenium Java - 如何查找动态更改类型的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36838143/