问题标签 [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 回答
497 浏览

javascript - 如何迭代并选择量角器中的每个下拉值

我有一个场景,其中有 2 个下拉菜单,每个下拉菜单都有一些值,然后有一个添加按钮。所以我们需要从一个下拉列表中选择 1 个值,然后从另一个下拉列表中选择 1 个值,然后单击添加按钮,然后再次从两个下拉列表中选择另一个值。但是,当我选择 1 下拉列表的值时,它会向我抛出一条错误消息 -

元素当时不可点击

下面是代码:

0 投票
2 回答
639 浏览

selenium-webdriver - 如何在不创建 webdriver 实例的情况下创建 webdriverjs 承诺?

我需要在 webdriverJS 测试脚本中执行一些节点需要命令,因为这些不会进入 webdriverJS 命令队列,我将它们包装在.then()函数中(以处理异步)

例如

这里的问题(除了它不优雅的事实)是启动了浏览器实例 - 只是为了实现承诺链。

是否有更好的方法来创建初始承诺,例如 webdriver api 中用于创建承诺的静态方法?

0 投票
1 回答
1031 浏览

javascript - 使用 webdriverjs 查找是否存在元素

检查页面中是否存在元素时出现问题

例子

在这个函数中,2000 秒超时从不执行,我们从 webdriver 获得超时

非常感谢 :)

0 投票
0 回答
88 浏览

javascript - 存储在循环内的值不反映在循环外

对于循环外的 strArray,我在控制台中为空白。和承诺有什么关系?这里的“元素”是 webElements 的列表。

在浏览了有关回调和异步函数的其他帖子后,我进行了以下更改 -

调用函数为 -

但仍然得到 'undefined' 。[a.then(function(value)] 行之前有一个 return,也不会改变输出。任何指针我在这里做错了什么?

0 投票
1 回答
1836 浏览

javascript - 无法使用 selenium webdriver js 单击或提交按钮

我在尝试单击或提交使用 selenium-webdriverjs 运行的测试脚本上的按钮时遇到问题。

我使用以下 NPM 模块:

  • 硒网络驱动程序
  • 摩卡
  • 柴如承诺

填写表格后,我无法单击按钮进入仪表板。我突出显示了该按钮,但它不会通过鼠标操作单击。

如果有帮助,这里有一些屏幕截图(我在测试期间手动拍摄了它们):

填写电子邮件和密码部分后,单击记住我按钮

鼠标悬停在登录按钮上

在最后一张图片上,我想单击登录按钮,由于显示预期的 css 效果,该按钮应该让鼠标悬停在其上,然后以某种方式前进到下一页。

这是我的完整测试脚本:

这是我在运行测试脚本时遇到的错误:

上述错误基本上证实了我的问题,即我无法正确点击登录按钮并进入下一页。

下面是登录表单的样子(我去掉了样式和 react-ids):

我尝试了其他方法,例如在 findElement 部分使用 click 函数,例如:

但它不起作用。使用这些行在 findElement 上使用 sendKeys 也不行:

或者

当我在 chrome 实例中使表单处于相同状态时,我可以使用以下行在 chrome 开发工具中轻松单击带有 vanilla JS 的按钮:

但是当我尝试在我的测试脚本中使用 executeScript 时它不起作用:

我不断收到与上述相同的错误,即我卡在登录页面上,无法继续前进。

0 投票
2 回答
357 浏览

angularjs - 通过单击打开的非角度页面 - 未使用 ignoreSynchronization 定义角度或等待 Angular 而没有

经过大量的研究和修修补补,我似乎实际上无法让我的量角器测试除了出现与 Angular 相关的错误之外的任何其他事情,即使我正在使用浏览器来避免检测到 Angular。

测试涉及一个 Angular 应用程序,在其中打开一个下拉菜单,然后单击控制台的链接;控制台在单独的窗口中打开一个非 Angular 管理页面。

因此,根据我发现的许多信息丰富的 SO 帖子,我首先使用了这个......

这似乎奏效了,因为我可以repl很容易地通过窗户。问题是当添加以下任何一个时...

一个期望检查 URL,另一个检查header页面上的元素,这是一个表头。当我运行它时,我得到以下信息:

等待量角器与页面同步时出错:“在窗口上找不到角度”

当我决定browser.ignoreSynchronization = true在函数或 a 中使用 时,无论beforeEach是否afterEach将其设置为 false,我都会得到以下信息:

JavascriptError:未定义角度

我似乎无法得到任何“有用的”错误来帮助我调试它,并且尝试它repl也无济于事,因为我遇到了同样的问题。全面地说,在没有获得第二个窗口的情况下尝试我的 URL 期望会给我根,而另一个会失败。只是做一个或另一个会导致同样的问题。更改为常规语法 ( element(by.css...)) 不会改变任何事情。

0 投票
1 回答
2753 浏览

javascript - 如何遍历 webdriverjs 元素,直到元素具有文本值

我正在尝试弄清楚 WebDriverJs 中的循环如何与 Promise 一起工作。

假设您有以下 html:

使用 WebDriverJs 我想找到带有文本“剪刀”的跨度并单击它。

最简单的事情是确保源 html 具有适当的标识符,但是说不能更改,WebDriverJs 代码会是什么样子给定上面的 html。

我尝试了以下方法:

true问题是,即使它应该设置为 true,但在评估时匹配不等于。

任何想法发生了什么?

0 投票
0 回答
594 浏览

javascript - 在 PhantomJS 上设置本地 GhostDriver 的路径,使用来自 Selenium WebdriverJs 的测试,该值在 Capabilities 部分中传递

目标是通过利用其路径的配置来访问本地版本的 GhostDriver,Capabilities 允许我们设置: https ://github.com/detro/ghostdriver/blob/master/README.md#what-extra -webdriver-capabilities-ghostdriver-offers

当使用 Selenium webdriverjs 运行测试时,就像一个简单的例子:

我无法使用本地版本的 GhostDriver。它只是命中了 phantomjs 中的默认版本。

但是,如果我使用 WebdriverIO 使用相同的 Capability 定义:

我可以使用本地版本的 GhostDriver。

在这里查看文档后: https ://github.com/detro/ghostdriver/blob/master/README.md#what-extra-webdriver-capabilities-ghostdriver-offers

和其他有类似问题的页面,我找不到任何有用的东西。

使用的版本:

  • selenium-server-standalone v2.51.0
  • selenium-webdriver v2.48.2
  • webdriverio v4.0.2
  • 幻影v2.1.1

有没有人知道如何让它工作?

0 投票
2 回答
345 浏览

javascript - 如何使用 selenium webdriverjs 将 sendkeys 函数与 Promise 链接一起使用?

这是代码:

错误:

TypeError: txtFnn.sendkeys 不是函数

0 投票
2 回答
1326 浏览

javascript - 角度量角器中的错误处理

我是自动化 angularJs 应用程序量角器的新手。我正在尝试从元素列表中选择一个元素。我正在尝试进行错误处理,但由于承诺,没有任何事情能按我的预期工作。

在下面的代码中,如果我传递了一个无效的 categoryName,它永远不会打印错误,而是进入验证部分(预期)并失败。

请帮助我理解这一点以及如何解决此问题。我尝试使用回调但没有运气。我也试过try catch,但仍然没有运气。感谢这里的任何帮助。谢谢