Selenium Java - 如何查找动态更改类型的元素?

时间:2016-04-25 10:36:44

标签: java eclipse dynamic selenium-webdriver

我正在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");

如何编写代码以正确查找密码字段?

1 个答案:

答案 0 :(得分:0)

我已经找到了答案,并将此处添加到其他有类似问题的人处。

分辨率是首先通过它的第一个id-passwordText找到该字段,然后使用在光标焦点 - 密码之后更改为的id将sendKeys发送到该字段。

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");