问题标签 [webdriver-io]

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 回答
728 浏览

node.js - WebdriverJS/IO & PhantomJS - 带有属性选择器的点击处理程序不适用于 PhantomJS

我目前正在使用 WebdriverJS 和 PhantomJS 编写应用程序测试套件。为了确保我的测试正常工作,我首先通过 Chrome 运行它们,它们都运行良好。但是,当我将 Chrome 换成 PhantomJS 时,测试就中断了。

这个问题 - WebDriver PhantomJS Unable to find element, but works fine with Firefox - 似乎概述了一个非常相似的问题,但随附的解决方案似乎没有帮助。

这是在 Chrome 上工作的东西类型的粗略示例,但在 PhantomJS 上不工作:

在 PhantomJS 上运行时,我显然首先更改了 WebdriverJS 选项:

但是当我运行测试并将 logLevel 设置为“详细”时,我收到如下错误消息:

为什么常见的 CSS2+ 选择器,如“[data-id='1568911']”,甚至“#foo”,不能通过 WebdriverJS 在 PhantomJS 上工作?它是 PhantomJS 错误、WebdriverJS 错误还是我在实现中犯的错误?

0 投票
1 回答
1681 浏览

javascript - 使用 webdriverio 发送表单后获取 URL

我需要自动化登录过程测试。我正在使用webdriver.io来做到这一点。

这是我的问题。

我有这个奇怪的登录过程:

  1. 我必须在常规网页中填写表格
  2. 发送表单后,我将被重定向到一个存在的 URL,但它的一个查询参数中包含一个访问代码
  3. 然后我获取此访问代码并将其发送到另一个位置以获取访问令牌。

我需要的是一种以编程方式完成第 2 步的方法,因为第 1 步和第 3 步我已经弄清楚了。

我正在尝试这样:

但是,似乎submitForm在页面加载之前调用了回调。这样,我的日志会显示与我之前传递的完全相同的 URL。

如果我这样尝试:

我得到这个奇怪的输出:

数据:文本/html,chromewebdata

我知道在这种情况下暂停并非完美无缺,但我找不到这样做的异步方式。

任何人都可以帮忙吗?

0 投票
1 回答
941 浏览

selenium - 使用 SafariDriver 运行 Selenium 移动测试时设置 UserAgent

我希望能够在 Safari 上运行 Selenium 移动测试时设置 UserAgent,但我不知道我是如何做到的。当我在 Chrome 上运行相同的测试时,我可以在我的 desiredCapabilities 中定义 UserAgent,如下所示:

猜想在 Safari 上运行它时必须有类似的方法。我正在使用 webdriverio 来设置我的 Selenium 项目,但我认为这无关紧要。

谢谢。

0 投票
2 回答
6928 浏览

windows - 如何获取弹出窗口的句柄(WebdriverIO)

我对自动化测试非常陌生,目前我完全陷入了以下问题:

我打开了一个网页(第一个窗口) 在同一个测试中,我调用了一个 .newWindow(第二个窗口)并在那个窗口中做一些事情。最后一个动作打开新的弹出窗口(弹出窗口)。我需要的是将焦点设置在弹出窗口上。

根据 WebdriverIO API,我可以使用 .switchTab http://webdriver.io/api/window/switchTab.html 但是为了能够切换到弹出窗口,我必须指明句柄,但我不明白如何获取弹出窗口的句柄:(

那是我的一段代码:

java中有很多例子,但我没有找到任何适合我的语言的东西。请原谅我的愚蠢,我真的是一个非常初学者,如果有人可以向我解释,我将不胜感激。

提前非常感谢!

0 投票
1 回答
4234 浏览

javascript - 一个简单的 WebdriverIO - Mocha 测试不显示浏览器

我不想无头地进行测试,但我不能那样做。

下面的代码启动 chrome 浏览器不是无头的。好的。

下面的代码(摩卡测试代码)不会启动 chrome 浏览$ mocha test.js

无头。吴。

但是测试通过了!我无法理解这。

我检查了 Selenium Server 的日志,但它没有显示(左)任何日志。没有痕迹。

测试结果如下:

0 投票
1 回答
989 浏览

javascript - 异步函数依赖于 Protractor 测试中的外部模块

我想要

  1. 保存远程 Web 服务器中的图像文件,以及
  2. 将其上传到另一台服务器

在量角器测试中。

但这不起作用:

当我var fs = require('fs');输入download函数时,错误消息如下:

0 投票
0 回答
1045 浏览

javascript - Webdriverio 元素功能

我在这里发布了原始问题:

https://github.com/webdriverio/webdriverio/issues/394

但我也想在这里发帖以提高知名度。

我一直在努力使用该element功能,并且总是收到如下错误:

即使使用 id 值或常规标签名称,我也会收到类似的错误消息。这就是我正在尝试测试的一些代码:

client设置类似于mocha/chai/jasmine 示例,我看到我的其他代码正在运行,因此我不关心配置。

想法?

0 投票
2 回答
699 浏览

java - 如何使用 Selenium WebDriver 下载 APK 文件

我正在尝试.apk在 FireFox 上使用 SeleniumWebDriver 下载文件。

我已将配置文件设置为auto-save,但是当我单击.apk文件下载链接时,它会打开下载确认对话框

我应该如何继续前进?

这是我的代码:

0 投票
0 回答
268 浏览

webdriver-io - 可以在同一脚本中将 var webdrriverio 从 require('webdriverio') 切换到 require('webdriverjs-angular')

我们有应用程序,其中登录页面是非 Angular,其他页面使用 Angular。如果我们启动 var webdriverio = require('webdriverio'),我们可以编写脚本,但我们想使用 mocha 和 chai 编写脚本,所以最好的方法是对 Angular 页面使用 require('webdriverjs-angular')。我尝试将 require('webdriverjs-angular') 用于登录页面,但异常超时。我尝试了可以​​切换的量角器,并且在 iframe 中定位元素时遇到了其他问题,因此我们切换到了 webdriverio。请您帮助我们,让我们知道我们可以在同一代码中将要求从 webdriverio 切换到 webdriverjs-angular。如果是,请提供示例代码

0 投票
2 回答
1637 浏览

mocha.js - 如何使用 Webdriver.io 和 Chai 作为 Promised 来验证 css 属性

目前在 Mocha、Chai 和 Chai-as-Promised 中使用 Webdriver.io 但是我在尝试验证 CSS 属性时很难获得验证的承诺:

编码:

但是我收到此错误:

默认按钮:小尺寸 1) 默认情况下应该有方角 1 失败

1)默认按钮:Tiny Size 默认应该有方角:Uncaught AssertionError: expected { Object (property, value, ...) } to deep equal '0px' 0 pass (2s) at assertEqual (/node_modules/chai/lib /chai/core/assertions.js:393:19)