【发布时间】:2015-11-29 04:22:02
【问题描述】:
我目前有一个测试 AngularJS 网站的 selenium 项目(使用 TestNG 驱动的 Java)。我已经使用 selenium 大约 1 年了,所以我熟悉框架的大部分方面,但是我在一个基本问题上遇到了困难。我有一个基本输入字段,我试图在其中使用 sendKeys 发送信息。由于某种原因,信息没有被输入到元素中。任何帮助将不胜感激。我将补充一点,我无法在其他页面的其他输入字段中输入信息。
输入元素:
<input id="input-info-company-name" type="text" ng-model="vm.groupData.name" required="" class="ng-pristine ng-untouched md-input ng-invalid ng-invalid-required" aria-required="true" aria-invalid="true">
硒代码:
driver.findElement(By.id("input-info-company-name")).clear();
driver.findElement(By.id("input-info-company-name")).sendKeys(groupInfo.getCompanyName() + driver.getClass().getSimpleName());
当我在发送密钥之前使用清除时,我得到以下堆栈跟踪
org.openqa.selenium.WebDriverException: Element must be user-editable in order to clear it
如果我删除了 clear 并且只是 sendKeys 我没有收到错误但没有在输入字段中输入任何值。
非常感谢任何帮助,如果您需要更多信息,请告诉我
【问题讨论】:
-
你确定这是页面上唯一带有
id="input-info-company-name"的元素吗? -
@alecxeYes,它绝对是它的第一个实例,所以无论哪种方式都可以使用
-
好的,如果你在清除之前点击它呢?
-
@alecxe 我有同样的想法,但不幸的是功能没有变化
-
如果您只是为了调试目的,在调用
clear()之前使用Thread.sleep()添加人为延迟会怎样?
标签: java angularjs selenium testng