问题标签 [webdriverjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
160 浏览

javascript - 承诺执行得太早

WebDriverJS API说我可以编写如下代码:

这里的标题是“谷歌”。我可以修改代码:

而现在的标题是“webdriver - Google Search”。在页面有机会加载之前,promise 会更改状态。此示例来自 API 文档,因此它应该可以工作。

我看到了一个等待 SO 的示例,但是我不知道将其转换为 WebDriverJS 中的工作代码,并且 API 没有提到“直到”。

0 投票
1 回答
468 浏览

javascript - 量角器:在上传过程中检查元素是否存在

我正在使用量角器来自动化 AngularJS 应用程序。在某些情况下,我需要使用浏览按钮上传图像,并在上传过程中检查进度条是否存在。

我正在使用以下代码来实现相同的目的:

这里的问题是 - 尽管存在进度条,但断言总是失败,因为element(locator).sendKeys(pathOfTheImage);命令仍在进行中并且没有返回任何内容以继续执行下一个命令,这是断言点。

我尝试使用关闭同步但没有成功:

这个问题有什么解决办法吗?如何在不等待 sendKeys 命令成功的情况下继续执行下一个命令?

0 投票
2 回答
4609 浏览

javascript - 是否可以在“executeScript”中解决承诺?

我正在尝试使用 Protractor+Jasmine 为我的非 Angular 应用程序编写我的第一个测试。

我需要调用我的应用程序全局实例的 API 函数,获取结果并在测试中进行比较。此函数的传入参数之一是回调,一旦数据准备好就会调用它。此功能执行一段时间取决于应用程序的配置。

我试图在这个回调函数中解析 promise 对象并在测试中处理它。这是我的代码的简化版本,它也不起作用。看起来脚本arguments[0].fulfill("Some data");永远不会执行,因为测试因超时而失败并显示消息:

在等待规范完成 10000 毫秒后超时

是否有可能在 function 的上下文中解析(实现)promise 对象executeScript()?还有其他方法可以处理这个问题吗?

UPD:此代码对我有用。谢谢!

0 投票
1 回答
791 浏览

javascript - WebDriverJS 控制流

Protractor 在后台使用 WebDriverJS。

WebDriverJS 使用“控制流”的概念来确保异步任务以预期的确定顺序执行。

因此,以下将按预期工作:

但是,如果我在浏览器上这些函数之一返回的 promise 的 then 中添加一个函数,那么一切都会继续以预期的方式工作吗?

例如:

上面的代码会维护控制流吗?

0 投票
1 回答
146 浏览

javascript - 了解量角器和 WebDriverJS 控制流

有人可以帮助我了解 WebDriverJS/量角器在这种情况下是如何工作的吗?

WebDriverJS 控制流是否因为 s 的.get方法在第 6 行添加了一个动作ElementFinder

我想expect在第 7 行也向控制流添加了另一个项目?

编辑:我已经更新了要使用的代码element.all

0 投票
2 回答
799 浏览

google-chrome - 标记以阻止 chrome 在后台进行节流?

我正在做一些自动化测试(使用SeleniumWebdriverjs),我注意到当 Chrome 窗口没有焦点时,执行速度会显着减慢。我可以设置一个标志/配置设置来阻止它“节流”吗?

0 投票
1 回答
773 浏览

javascript - 量角器剑道组合框

我在使用 Angular js 选择剑道组合框时遇到问题。我可以告诉更改值的最佳方法是在控制器上设置 model.batch.type,但我不知道该怎么做。我已经搞砸了执行脚本来做到这一点,但没有运气。任何帮助,将不胜感激。

我正在尝试使用 id='type' 在第二个输入中选择一个选项。

0 投票
0 回答
248 浏览

javascript - 量角器 ElementArrayFinder.filter() 只运行一次?

<tr>我在页面对象中多次过滤元素的 ElementArrayFinder 时遇到问题。第二个过滤器在第一个过滤器之后被调用。在下面的代码中,我首先验证一个数字在表格中,然后再次过滤它以单击它。我不只是将这些组合在一起的原因是因为它们在依赖于函数参数batchNumber的函数中,并且可能不同。

筛选:

当我在过滤器函数中放置一个断点时,它只会到达第一次迭代,而不是第二次。运行它的规范看起来像这样。

html 只是一个表格,第一个 td 是批号。

0 投票
2 回答
1001 浏览

javascript - 使用带量角器的 phantomjs 访问 iframe 中的 Web 元素

phantomjs 可以在 iFrame 中执行 getText() 或 enterText() 之类的操作吗?我正在使用量角器进行测试。Phantomjs 可以在默认框架中执行操作,但在 iframe 中,定位器会超时。有什么建议么?

0 投票
1 回答
269 浏览

javascript - 如何使用 WebdriverJS 在 WebElement 中找到 WebElement?

如果这是 HTML

我的 el 是

var el = el.findElement(By.css(".my-element"));

我怎样才能得到 p.the-text 文本?

我需要一个相当于