问题标签 [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.
selenium - 如何避免 UnexpectedAlertOpen - 实习生 Leadfoot
我编写了一个实习功能测试,它从一个单元格复制数据并将其粘贴到另一个单元格。问题是每次运行测试并复制数据时,我都会收到一个带有消息的对话框
Pasting from clipboard is
currently turned off by your browser.Local Data will be
used
现在由于这个弹出窗口,我的功能测试冻结,其他一切都开始失败。幸运的是,有一种方法可以避免这种情况。.acceptAlert()
尽管这在本地有效,但有时在詹金斯中测试仍然失败。它不稳定。我如何使它稳定。
javascript - clickMouseButton 之后的事件
在我的一项测试中,我将鼠标移动到特定位置,然后clickMouseButton()被调用。此操作是更改显示的数据(对数据进行分页)。但是,单击后,当我尝试获取表格列中的文本以验证数据是否更改时,数据更改回最初显示的内容我的测试失败了。我的测试代码是:
后面的代码JE.Buttons.Scrolling()是:
在我看来,Leadfoot 中的定位器在首次加载时确实与页面上的内容绑定。是这样吗,我应该如何去做我需要发生的事情?我对此没有其他解释,但希望你能做到。
javascript - Leadfoot moveMouseTo 在元素存在时需要 X/Y 偏移
在 Leadfoot Command#moveMouseTo 的文档中,它声明每个参数都是可选的(https://theintern.github.io/leadfoot/Command.html#moveMouseTo)。当我传入一个元素而不传入 X 或 Y 偏移量时,我收到一个关于要求存在偏移量的命令的错误。
这是有问题的代码:
contextMenu.Options.Actions.element 定义为:
根据文档,这应该将鼠标移动到传递元素的中心。显然,这不会发生。我做错了什么吗?这是否没有正确记录,或者这是 Leadfoot 中的错误?
编辑测试代码的正确格式是:
intern - 实习生报告和错误处理
几天前,我开始阅读有关 Web 应用程序自动化测试的内容,经过大量试验和错误(和教程),终于设法在本地和 BrowserStack 上运行了几个实习生功能测试,但有一件事我不能环绕我的头是报告。
例如,我有一个简单的测试,它填写一些登录页面数据,提交表单,并检查一切是否正常。
代码可能如下所示:
运行后intern-runner config=tests/intern.js
测试将通过,我将在控制台窗口中看到类似
好的,如果测试通过,我真的不需要太多信息,一切都很好,但另一方面,如果在测试中我有类似的东西:
我得到的关于失败的唯一信息是:
有没有办法知道页面上的哪个元素没有找到?也许我做错了什么?
谢谢
编辑:
完整的错误摘要:
intern - 在实习生功能测试中使用变量
我需要使用一个变量,其值是根据 css 样式像素确定的。测试找到左像素的值,然后选择一个特定的单元格。但是当我运行这个测试时,值总是 0 而不是它实际应该是的值。
javascript - 在 Intern.js Leadfoot 中,如何执行 CTRL 单击
我只是想知道在 Leadfoot 中执行 ctrl + 单击操作的首选方式是什么。在 java 中,我会使用 Actions 类并使用 keyDown,但由于我们已经转移到基于 JS 的框架,所以我完全是一条出水的鱼!
我在 api 中看到有一个 pressKeys 函数,但它似乎没有做我们需要的。我曾考虑过使用 jQuery 来执行此操作,但我真的更愿意将其保留在当前框架中。
非常感谢任何帮助。
彼得
javascript - 使用实习生 Leadfoot 在 reactjs 输入字段中输入文本
我正在测试一个 reactjs 应用程序,并且 type() 和 pressKeys() 命令无法正常工作。type('string') 未在输入字段中输入文本,而 pressKeys('string') 仅输入 's'。我不确定这是否是 Leadfoot 和一般反应的问题,或者我正在测试的特定反应应用程序。以下是页面中的一些示例代码:
我无法选择第一个输入元素,因为它被隐藏了,我尝试选择所有可用的 div 和第二个输入元素。我目前必须执行以下操作才能输入文本:
有什么建议么?我目前正在使用一个函数,将数据字符串转换为 char 数组,然后一次输入每个 char。
node.js - 检索到多个元素后的链式操作
为了测试,我们必须使用 intern/leadfoot 填充一个复杂的页面。页面的每个部分都由一个单独的函数处理,该函数接收必要的元素和输入数据。
现在我们遇到了问题,对子函数中这些元素的操作不能再被链接,因为它们是元素而不是命令。
是否有可能再次链接操作?我尝试了很多使用setContext()或使用自定义命令创建新命令,但到目前为止没有成功。
intern - 每次测试后退出 - 实习生 + Leadfoot
尝试在这里测试一些用户权限,每次测试后我都无法退出...
这只有在我也清除 Cookies 时才有效,但我不需要清除 cookie(手动执行localStorage.clear()和重新加载工作)。我希望return this.remote.clearLocalStorage();就足够了,但在以下测试中,我被重定向到我的仪表板。
selenium - Leadfoot + sauce:使用 getAttr 映射元素集合仅在移动设备中失败
我的用例对此有所不同,但总的来说,我试图收集一堆元素,然后应用于_.map()每个元素。问题是这一系列.getAttribute()调用可能会导致在本地工作的测试对远程服务器(如 sauce/android)失败。
一个例子:收集<div class='article'><a href='articles/{id}'>页面上的所有内容,然后获取 href。它可能看起来像这样,并且这种方法将一直有效,直到我在移动(android)酱环境上进行测试。然后我得到一个超时。
这可能是与我的 android 环境功能有关的问题吗?堆积这么多请求?我尝试将我的测试从使用 75 篇文章缩减到仅 45 篇,并将超时时间提高到 60 秒,但移动测试仍然失败。本地用chromedriver就可以了,chrome桌面+酱就可以了。
不是我的实际测试,而是我正在谈论的代码的近似值: