【问题标题】:Selenium send keys is not workingSelenium 发送密钥不起作用
【发布时间】: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


【解决方案1】:

我遇到的问题是该 ID 正在页面上使用,位于该输入元素上方。所以我试图清理一个容器。感谢@alecxe 指出这一点。如果有人有同样的问题,我会留下这个帖子

【讨论】:

    猜你喜欢
    • 2018-03-27
    • 1970-01-01
    • 2018-07-24
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2021-04-21
    相关资源
    最近更新 更多