问题标签 [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.
javascript - 如何迭代并选择量角器中的每个下拉值
我有一个场景,其中有 2 个下拉菜单,每个下拉菜单都有一些值,然后有一个添加按钮。所以我们需要从一个下拉列表中选择 1 个值,然后从另一个下拉列表中选择 1 个值,然后单击添加按钮,然后再次从两个下拉列表中选择另一个值。但是,当我选择 1 下拉列表的值时,它会向我抛出一条错误消息 -
元素当时不可点击
下面是代码:
selenium-webdriver - 如何在不创建 webdriver 实例的情况下创建 webdriverjs 承诺?
我需要在 webdriverJS 测试脚本中执行一些节点需要命令,因为这些不会进入 webdriverJS 命令队列,我将它们包装在.then()
函数中(以处理异步)
例如
这里的问题(除了它不优雅的事实)是启动了浏览器实例 - 只是为了实现承诺链。
是否有更好的方法来创建初始承诺,例如 webdriver api 中用于创建承诺的静态方法?
javascript - 使用 webdriverjs 查找是否存在元素
检查页面中是否存在元素时出现问题
例子
在这个函数中,2000 秒超时从不执行,我们从 webdriver 获得超时
非常感谢 :)
javascript - 存储在循环内的值不反映在循环外
对于循环外的 strArray,我在控制台中为空白。和承诺有什么关系?这里的“元素”是 webElements 的列表。
在浏览了有关回调和异步函数的其他帖子后,我进行了以下更改 -
调用函数为 -
但仍然得到 'undefined' 。[a.then(function(value)] 行之前有一个 return,也不会改变输出。任何指针我在这里做错了什么?
javascript - 无法使用 selenium webdriver js 单击或提交按钮
我在尝试单击或提交使用 selenium-webdriverjs 运行的测试脚本上的按钮时遇到问题。
我使用以下 NPM 模块:
- 硒网络驱动程序
- 摩卡
- 柴
- 柴如承诺
填写表格后,我无法单击按钮进入仪表板。我突出显示了该按钮,但它不会通过鼠标操作单击。
如果有帮助,这里有一些屏幕截图(我在测试期间手动拍摄了它们):
在最后一张图片上,我想单击登录按钮,由于显示预期的 css 效果,该按钮应该让鼠标悬停在其上,然后以某种方式前进到下一页。
这是我的完整测试脚本:
这是我在运行测试脚本时遇到的错误:
上述错误基本上证实了我的问题,即我无法正确点击登录按钮并进入下一页。
下面是登录表单的样子(我去掉了样式和 react-ids):
我尝试了其他方法,例如在 findElement 部分使用 click 函数,例如:
但它不起作用。使用这些行在 findElement 上使用 sendKeys 也不行:
或者
当我在 chrome 实例中使表单处于相同状态时,我可以使用以下行在 chrome 开发工具中轻松单击带有 vanilla JS 的按钮:
但是当我尝试在我的测试脚本中使用 executeScript 时它不起作用:
我不断收到与上述相同的错误,即我卡在登录页面上,无法继续前进。
angularjs - 通过单击打开的非角度页面 - 未使用 ignoreSynchronization 定义角度或等待 Angular 而没有
经过大量的研究和修修补补,我似乎实际上无法让我的量角器测试除了出现与 Angular 相关的错误之外的任何其他事情,即使我正在使用浏览器来避免检测到 Angular。
测试涉及一个 Angular 应用程序,在其中打开一个下拉菜单,然后单击控制台的链接;控制台在单独的窗口中打开一个非 Angular 管理页面。
因此,根据我发现的许多信息丰富的 SO 帖子,我首先使用了这个......
这似乎奏效了,因为我可以repl
很容易地通过窗户。问题是当添加以下任何一个时...
一个期望检查 URL,另一个检查header
页面上的元素,这是一个表头。当我运行它时,我得到以下信息:
等待量角器与页面同步时出错:“在窗口上找不到角度”
当我决定browser.ignoreSynchronization = true
在函数或 a 中使用 时,无论beforeEach
是否afterEach
将其设置为 false,我都会得到以下信息:
JavascriptError:未定义角度
我似乎无法得到任何“有用的”错误来帮助我调试它,并且尝试它repl
也无济于事,因为我遇到了同样的问题。全面地说,在没有获得第二个窗口的情况下尝试我的 URL 期望会给我根,而另一个会失败。只是做一个或另一个会导致同样的问题。更改为常规语法 ( element(by.css...)
) 不会改变任何事情。
javascript - 如何遍历 webdriverjs 元素,直到元素具有文本值
我正在尝试弄清楚 WebDriverJs 中的循环如何与 Promise 一起工作。
假设您有以下 html:
使用 WebDriverJs 我想找到带有文本“剪刀”的跨度并单击它。
最简单的事情是确保源 html 具有适当的标识符,但是说不能更改,WebDriverJs 代码会是什么样子给定上面的 html。
我尝试了以下方法:
true
问题是,即使它应该设置为 true,但在评估时匹配不等于。
任何想法发生了什么?
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。
和其他有类似问题的页面,我找不到任何有用的东西。
使用的版本:
- selenium-server-standalone v2.51.0
- selenium-webdriver v2.48.2
- webdriverio v4.0.2
- 幻影v2.1.1
有没有人知道如何让它工作?
javascript - 如何使用 selenium webdriverjs 将 sendkeys 函数与 Promise 链接一起使用?
这是代码:
错误:
TypeError: txtFnn.sendkeys 不是函数
javascript - 角度量角器中的错误处理
我是自动化 angularJs 应用程序量角器的新手。我正在尝试从元素列表中选择一个元素。我正在尝试进行错误处理,但由于承诺,没有任何事情能按我的预期工作。
在下面的代码中,如果我传递了一个无效的 categoryName,它永远不会打印错误,而是进入验证部分(预期)并失败。
请帮助我理解这一点以及如何解决此问题。我尝试使用回调但没有运气。我也试过try catch,但仍然没有运气。感谢这里的任何帮助。谢谢