问题标签 [leadfoot]

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

javascript - polluntil undefined 不是函数

我有以下代码:

实习生不断给我

当我尝试将 pollUntil 分配给一个变量并调用它时,它仍然给我同样的错误。我正在使用最新版本的 Chromedriver/Chrome/etc。

0 投票
1 回答
400 浏览

intern - 如何在返回之前等待函数完成?

我正在尝试创建一个函数,我可以从任何测试中调用它来查看正在传递的元素(链接文本、Css 选择器、Xpath、ID),单击该元素,然后验证它之后出现的 URL负载。我遇到的问题是它在函数完成之前返回。

我知道我需要实现异步和回调,但我很难理解结构。

感谢任何帮助或评论。

0 投票
1 回答
260 浏览

dojo - 实习生:Leadfoot - 测试拖放

我有一个使用 dojo 小部件和拖放功能的 web 应用程序,我正在使用 Intern 来测试它。现在我想测试拖放机制,为此我希望使用 Leadfoot 的助手DragAndDrop.js

如脚本示例中所示,这里是我的代码:

我有 return 语句,因为此代码是承诺链的一部分。

但是,它似乎不起作用,我没有得到任何类型的错误|异常,在浏览器中也没有,在 selenium 中也没有在实习生方面。老实说,我不知道从哪里开始。有什么建议吗?我可以提供更多信息吗?

0 投票
2 回答
489 浏览

intern - 为什么点击处理程序不在 Leadfoot 中运行?

我正在尝试使用Intern框架编写功能测试,该框架使用Leadfoot库来实现 WebDriver API,因为我正在使用 Selenium Grid 设置在远程浏览器上测试我的 webapp。该应用程序已经启动并运行。我使用的功能测试如下:

});

要开始我的测试,我使用实习生跑步者:./node_modules/.bin/intern-runner config=tests/intern.cfg -reporters=Runner

我的问题的本质是findDisplayedByClassName('server-name-span-text')找不到类名,即使我正在使用findDisplayed等待元素显示的调用。该元素没有显示,因为由于某种原因click()调用没有正确触发事件(猜测)。我的意思是 webapp 代码中的点击处理程序没有执行,因此server-name-span-text没有创建具有类名的元素。我最终得到的是findDisplayedByClassName由于超时而失败。

当我在本地运行它时,我实际上可以观察并确认点击事件没有发生。所以我的 webapp 中的预期变化不会发生。

实习生的日志如下:

selenium 节点的日志没有显示问题,至少在 INFO 级别:

我该如何解决这个问题?

注:实习生版本为“3.0.6”,前导版本为“1.6.4”。我尝试使用 Selenium IDE 运行相同的功能测试,它运行成功。

0 投票
2 回答
820 浏览

functional-testing - 使用 Intern / LeadFoot / Selenium 在功能测试中隐藏密码

我正在使用实习生进行功能测试。其中一项测试需要登录管理员帐户:

现在,问题是这个密码是作为纯文本传入的。它在 BrowserStack 上显示:

在 SauceLabs 上也是如此:

问题在于这些测试的访问不受限制——这些测试需要其他部门的人查看。

即使没有这个,万一测试帐户的密码被泄露,我也不希望攻击者突然获得对其他所有内容的管理员访问权限。

有什么办法可以使密码不在命令中存储/显示为纯文本?

我的团队目前正在考虑运行单独的脚本来激活/停用这些帐户,以便它们仅在运行功能测试时工作,但我想看看是否有人提出了更好的解决方案。

0 投票
1 回答
464 浏览

javascript - 如何在 InternJS 中切换帧后继续

有人可以告诉我在框架切换完成后如何继续引用 iframe 中的元素吗?我已经查看了How to switch iframes InternJS中提出的解决方案,但无济于事,并且intern Functional Testing with Frames中的信息不适用(尚不适用。)以下脚本返回错误Cannot read property 'apply' of undefined type: TypeError

我可以看到脚本失败的唯一原因是框架的位置不正确。页面上有两个,我需要第一个。完成此操作后,我真的很想将对框架的引用放在页面对象中(这是我认为它所属的地方),但我必须能够首先成功找到它,所以不要本末倒置。非常感谢您的建议和帮助。

0 投票
1 回答
128 浏览

javascript - 实习生功能测试中的多个 THEN 语句

我有一个测试可以做something并且测试x是可见的 -

我现在想断言它y是隐藏的,即WHEN something THEN x is visible AND y is hidden

这个实习生怎么写?我可以为此编写一个单独的测试,但加载应用程序非常昂贵,我想将尽可能多的断言组合到一个测试中,同时尽量保持测试的原子性。

0 投票
1 回答
409 浏览

selenium-webdriver - 使用 Intern/Leadfoot 迭代元素

下面有 2 个地方的代码(在 Javascript 中)从未被执行,尽管它看起来好像应该执行。请参阅下面的代码,评论说“此代码永远不会执行”。

我碰巧处于动态生成 ID 的环境中。我创建了 2 个文件 'a.html' 和 'b.html' 最终作为 iframe 添加到页面 (index.html)。我想遍历 iframe,获取每个 iframe 的 ID,然后使用 ID 获取每个 iframe 的内容进行测试。

如何使用 Javascript 测试框架 Intern 做到这一点?

文件:a.html

文件:b.html

我创建了一个文件 index.html 来加载上面的文件...文件:index.html

...并运行以下实习生测试文件:testFrames.js

0 投票
1 回答
625 浏览

intern - 实习生leadfoot(元素不可见):等到元素使用isDisplayed可见?

我正在尝试测试我的应用程序的登录对话。需要等待一个类名为“LoginDialog”的元素被添加到 DOM。但是,对话框不会立即出现在 UI 上,尽管它仍会立即添加到 DOM 中。我需要确定它是否也可见。

我决定先 pollUntil 元素被添加,然后检查元素是否使用 isdiplayed 进行了显示,但我仍然不断收到元素没有可见的错误

0 投票
2 回答
612 浏览

selenium - 如何清除 Intern JS 中的输入字段?

我已经为内联编辑表格字段编写了一小段代码。当用户单击时,该元素被删除并在其位置input上创建一个字段。修改完成后,该input字段将被删除并span创建一个具有新值的元素。让我展示一些背景代码。

点击前的html代码:

点击后的html代码:

当输入失焦blur、或ENTER_KEY按下时,修改后的值会发送到服务器。

另一方面,我在实习生 js 中编写了一个功能测试来模拟这种内联编辑。我的功能测试如下所示:

问题是测试失败,chrome 和 firefox 都出现异常。

  1. 铬合金:InvalidElementState: invalid element state: Element must be user-editable in order to clear it
  2. 火狐:UnknownError: Element must be user-editable in order to clear it.

当发生异常并且输入字段明显集中时,我有屏幕截图。所以你应该可以编辑它。我试图.clearValue()从链中删除调用,但是正如预期的那样,断言失败了。

问题:如何测试这种内联编辑?