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

javascript - 如何在量角器中使用/分离枚举、常量和定位器

我试图通过将枚举、常量和定位器移动到其他文件来使我的测试更清晰/参数化。有没有办法在使用量角器/java 脚本时做到这一点。如果是,最好的方法是什么?

0 投票
3 回答
115 浏览

javascript - 捕获 WebdriverJs 值以在块外使用

我正在尝试解决如何在使用 WebDriverJs + Mocha 时从使用承诺检索值的块中返回值。

我有这个示例代码来尝试显示我面临的问题,摩卡测试 1) 失败,因为它不使用嵌套test.it块中的值,而测试 2) 通过。

如果我想使用返回的值而不嵌套另一个test.it块,有没有办法等待承诺被解决?

0 投票
2 回答
5181 浏览

javascript - 量角器 - 错误:第二次使用相同功能时索引超出范围异常

我有以下功能,可以从可用类别列表中选择一个类别。此功能在我的第一次测试中运行良好。但是在我的第二个测试中具有不同有效类别名称的相同函数失败并出现以下错误。

错误:索引超出范围。尝试访问索引处的元素:0,但只有 0 个元素与定位器匹配 By.cssSelector(".grid-view-builder__category")

规格文件

0 投票
0 回答
150 浏览

javascript - UI 自动化如何知道 ReactJS 页面已准备好进行用户交互?

同步是 UI 自动化的一个常见问题,几乎所有现代 Web 设计都会进行大量客户端渲染或 AJAX 工作。使用 JQuery,我可以查看.active属性(活动请求的数量),如果它变为 0 并在那里停留了一会儿,通常可以肯定页面已完成更新。

是否有与 React 类似的东西可以用来判断没有打开的 AJAX 调用,或者代码已经完成了页面元素的更新(或“修补”虚拟 DOM 到页面 DOM)?或者以其他方式告诉页面处于自动模拟用户操作可以与其交互的状态,而不必担心页面更新和出现诸如“找不到元素”之类的错误。

0 投票
2 回答
2010 浏览

javascript - 如何等到元素的文本在 WebdriverJS 中发生变化?

我在Alister Scott 的博客中找到了如何等到元素更改为特定值。但是我无法解决如何创建等待元素等到其文本从特定值(在我的情况下从'-')更改为其他任何值(在我的情况下它是一个计数器,所以我不能设置具体值等待)。

有任何想法吗?

0 投票
2 回答
2232 浏览

protractor - 使用量角器在非 Angular 站点上使用预期条件会导致“类型错误:无法读取未定义的属性‘绑定’”

当我在通过量角器的元素对象返回的 web 元素上使用预期条件时,我看到了以下问题。我也试过 $ ,结果是一样的。我在节点 4.2.4、Chrome V47 上使用 Protractor 3.1.1。*

“类型错误:无法读取未定义的属性‘绑定’”

在询问之前,我搜索了论坛,并了解使用 driver.findElement 使用带有硒元素的预期条件存在一些已知问题。

但是,我在使用元素对象本身时无法遇到类似的问题。

https://github.com/angular/protractor/issues/1853

我们有一个用于登录页面的非 Angular 应用程序,它将在登录后切换到 Angular。所以,我设置了ignoreSynchronization=true,后来计划在登录后将其重置为false。以下是示例代码,感谢社区的任何想法。

页面对象文件

下面是我的示例测试套件

报告的堆栈跟踪如下所示:堆栈:

0 投票
1 回答
38 浏览

node.js - node.js 的 webdriver:在不放弃鼠标和键盘控制的情况下在本地执行脚本?

webdriver.js 的间歇性故障

我正在创建一些 webdriver.js* 脚本来自动化一些耗时的测试设置活动。但是,当我运行脚本并使用键盘和鼠标执行其他操作时,我回过头来发现,间歇性地找不到特定元素。而且每次都是不同的元素。

当我运行相同的脚本并只是看着它们运行时,脚本会正确执行。

另外,当我研究这个潜在的问题时,我想出了很多关于在 webdriver 脚本中使用鼠标的问题,以及 click 方法本身的问题,但找不到与我的问题有关的任何东西。所以我想知道我是否只是在这里做错了什么。

那么问题是什么?

我的问题是:webdriver.js 不应该这样运行吗?(即在本地运行而键盘和鼠标在做其他事情)?

网络驱动程序.py?

我不记得几年前使用 webdriver.py 时遇到过这些问题。iirc,我能够在工作站被锁定时运行脚本(通过 Win + L),尽管我的记忆与以前不同;)

我会使用 webdriver.py,但是,我们团队中没有其他人知道 python,所以我想我会使用 webdriver.js,因为我们都知道 javascript :)

参数:IE11、Windows 10。

* 另外,当我说“webdriver.js”时,我指的是按照此处的步骤安装的 webdriver

0 投票
3 回答
2264 浏览

javascript - selenium-webdriver 将函数数组作为参数传递给 executeScript

它出错了

看起来函数正在被序列化string

任何有关如何通过的指针array of functions as arguments都会有所帮助。

0 投票
1 回答
8086 浏览

javascript - TypeError: element(...).then 不是 Protractor 3.2.1 中的函数

我正在使用以下代码

当我使用 Protractor 1.0 时,这段代码可以正常工作。将 Protractor 升级到 3.2.1 后,我开始出现以下错误。

TypeError: element(...).then 不是函数

我可能错过了一些东西,但不确定是什么。

0 投票
2 回答
1545 浏览

javascript - implicitlyWait does not work in webdriver javascript

I want to wait for the error message comes out. However, when I use browser.driver.manage().timeouts().implicitlyWait(), but I have to use browser.driver.sleep()