【问题标题】:Watir/Selenium giving error "Element is not currently interactable"Watir/Selenium 给出错误“元素当前不可交互”
【发布时间】:2019-04-15 21:09:25
【问题描述】:

我正在尝试使用 watir 进行测试,这是一个我们正在开发的网络应用程序,但遇到了一个令人困惑的错误。

有问题的 HTML 是

<td>
  <div class="filter-container">
    <input name="PersonName" type="text">
  </div>
</td>

阻塞的命令是:

b.text_field(:name, "PersonName").set "Robert" 

而irb返回的错误是:

Selenium::WebDriver::Error::InvalidElementStateError: Element is not currently interactable and may not be manipulated
from /usr/local/Cellar/ruby/2.0.0-p0/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.31.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
from /usr/local/Cellar/ruby/2.0.0-p0/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.31.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'

(还有几行,但我认为上面是相关的东西)

文本框 可以使用鼠标和键盘“交互”,所以我不知道为什么 watir 会犹豫。有什么想法吗?

【问题讨论】:

    标签: selenium webdriver watir


    【解决方案1】:

    页面上是否可能有多个输入名称为 PersonName 的文本字段?也许隐藏在页面上的某个地方? Selenium 可能以其他文本字段为目标并报告它已被禁用。尝试使用:

    b.div(:class, "filter-container").text_field(:name, "PersonName").set "Robert" 
    

    【讨论】:

      【解决方案2】:

      检查以确保 Selenium 没有在页面上找到第二个具有相同名称的隐藏元素。

      【讨论】:

        【解决方案3】:

        当您尝试与禁用的元素交互时会发生这种情况。 阅读here了解更多信息。

        【讨论】:

        • 据我所知,该元素是 not 禁用的。我可以手动输入文本字段,我什至可以通过将信息放入 URL(,通过将“?PersonName=Robert”附加到 URL。)将查询信息传递到字段。所以,虽然我将其用作解决方法,但我仍然不知道是什么原因造成的。
        【解决方案4】:

        我遇到了相同类型的 selenium 错误消息,并在运行代码允许它按预期工作。

        这不是一个很好的解决方案,因为我必须在运行代码时每次清除所有内容。不优雅但实用。

        注意:我通过 splinter 调用 selenium 并使用 firefox 作为我的 splinter 浏览器,以防万一。

        【讨论】:

          【解决方案5】:

          这种情况经常发生在我身上,看起来它试图过早地访问一个元素。具有两个确定/取消按钮的动态模式页面的示例代码:

          不起作用:

          $this->getSession()->getPage()->pressButton('Cancel');
          

          在我的情况下效果很好:

          sleep(1);
          $this->getSession()->getPage()->pressButton('Cancel');
          

          遗憾的是,我没有找到任何 Selenium 解决方案来等待元素“可交互”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-08
            • 1970-01-01
            • 1970-01-01
            • 2017-01-27
            • 1970-01-01
            • 1970-01-01
            • 2021-08-02
            • 1970-01-01
            相关资源
            最近更新 更多