【问题标题】:`waitForEnabled()` says "selector needs to be typeof `string`" even though string was passed`waitForEnabled()` 说“选择器需要是 typeof `string`”,即使传递了字符串
【发布时间】:2017-09-10 05:05:12
【问题描述】:

我最初使用mocha 命令行工具来运行我的测试并且它们运行良好。我改用wdio 命令来运行我的测试。我的测试现在用这行代码抛出一个错误:

browser.waitForEnabled('#div_id');

出现此错误:

Promise was rejected with the following reason: Error: selector needs to be typeof `string`
running chrome
Error: Promise was rejected with the following reason: Error: selector needs to be typeof `string`
    at elements() - isEnabled.js:18:17
    at isEnabled() - waitForEnabled.js:37:22

在我开始使用wdio(特别是我运行wdio --spec path/to/file.js)之前,这一切正常。我在有问题的选择器上运行了typeof 函数,并验证它实际上是一个字符串。

有问题的 div 如下所示:

<div class="highlight" id="div_id">
A fair bit of content goes here.
</div>

为什么我会看到这个错误?我该如何解决?

waitForEnabled() 文档 => http://webdriver.io/api/utility/waitForEnabled.html

wdio 文档 => http://webdriver.io/guide/testrunner/gettingstarted.html

更新:

我尝试向waitForEnabled() 函数添加超时。既然我这样做了,它有时会失败,有时不会。但更多时候它会失败。

【问题讨论】:

  • 你能分享一下#div_id 的代码吗?您是否尝试对 waitForEnabled 使用超时?
  • @k185 你想要选择器的结果吗?
  • 使用超时(如waitForEnabled('#div_id', 9000);)失败并出现同样的错误。但是,它会等到指定的时间过去后才会失败。
  • 不,您定位的 div 的一部分
  • @k185 。我已经编辑了我的问题以包含 div 本身。如果您想了解更多信息,请 Lmk。

标签: javascript webdriver-io


【解决方案1】:

我没有将此标记为答案,因为我不知道它为什么起作用。但是将所有可选参数传递给waitForEnabled() 使它工作得很好。

如: waitForEnabled('#div_id'); 失败。其中:

waitForEnabled('#div_id', 99999, false); 可以正常工作。

【讨论】:

  • 您是否更改了 wdio.conf.js 文件中的超时值?还是在那个文件中有这个值?
  • waitforTimeout: 10000,(在 wdio.conf.js 中)
  • 这无济于事,但我认为问题在于,因为 10 秒超时有时非常短。根据我的尝试,我总是添加 mochaOpts: { ui: 'bdd', timeout: 999999 },这个超时到 wdio.conf.js 文件
【解决方案2】:

您正在通过毫秒和 false 选项的事实不应使测试通过。

我建议使用其他一些 waitFor 命令,例如 waitForVisible()waitForExist(),因为我假设这是您在上面给出的代码示例中真正想要的。 waitForEnabled() 命令等待具有disabled html 属性的字段不再具有它。你可以在这里阅读更多内容:https://www.w3schools.com/tags/att_disabled.asp

【讨论】:

  • 我知道。预期的行为是测试此 div 是否停止存在。我在问为什么我会看到这个错误。
  • 好的。我只是建议您改用waitForExist(),因为waitForExist(null, true) 会等待wdio.conf.js 中提供的默认毫秒数,直到元素停止存在,而waitForEnabled() 则完全执行其他操作。跨度>
猜你喜欢
  • 2022-01-05
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
相关资源
最近更新 更多