【发布时间】: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。