找不到点击它的元素/使用Java在selenium中发送密钥

时间:2017-05-15 10:04:38

标签: javascript java angularjs selenium

我是这个论坛的新手,这实际上是我第一次编码

在代码中我有这个部分:

md-input-container class="md-default-theme md-input-invalid">
label for="input_4">Email</label>
input name="emailField" type="email" ng-model="email" ng-change="resetValidity()" auto-focus="" validate-email="" required="" class="ng-pristine md-input ng-valid-email ng-invalid ng-invalid-required ng-touched" id="input_4" tabindex="0" aria-required="true" aria-invalid="true" style="">
!-- ngIf: forgot_password.emailField.$invalid && forgot_password.$submitted -->
/md-input-container>
每次打开会话时,ID都会得到一个不同的号码。 我试试这个:

WebElement emailField = driver.findElement(By.cssSelector("input[name='emailField']"));
emailField.click();
emailField.sendKeys("aa@aa");

也可以通过URL访问:“ocloud.optitex.com” 转到“忘记密码”我正试图在那里找到电子邮件字段,点击它并发送密钥

但没有任何事情发生。我收到这个错误:

  

没有这样的元素异常,无法定位元素。

将非常感谢有关我如何点击该字段并发送密钥的任何帮助。

2 个答案:

答案 0 :(得分:1)

在代码中使用Implicit wait,以便有足够的时间在异常

之前找到元素
driver = new ChromeDriver();    
driver.manage().window().maximize();
driver.get("https://ocloud.optitex.com/#/login/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.xpath("//button/span[contains(.,'Forgot Password?')]")).click();
driver.findElement(By.xpath("//input[@name='emailField']")).sendKeys("abc@gmail.com");
driver.findElement(By.xpath("//button/span[contains(.,'Reset Password')]")).click();

答案 1 :(得分:0)

使用xpath;

WebElement emailField = driver.findElement(By.xPath("//input[@name='emailField']"));
emailField.click();
emailField.sendKeys("aa@aa");