问题标签 [testcafe]
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.
testing - 更改 requesthook 中的请求 URL
我们正在尝试使用 testcafe 实现功能测试。由于我们复杂的后端系统,在某些情况下(如 OTP、后端帐户锁定),如果没有人工干预,我们将无法访问实际的 API。为了避免这种情况,我们决定为某些端点运行存根服务器。
为了实现这一点,我们想在我们的测试代码中修改 API 的 URL。我们考虑使用自定义请求挂钩来更改 URL。尽管对象中的 URL 发生了变化,但浏览器会点击实际的 API URL。
javascript - setFilesToUpload 操作对我不起作用
我正在尝试将文件上传到我正在测试的 Web 应用程序。我可以识别上传的唯一 Html 是“文件输入”类。
目前我所做的是,在我的页面模型文件中,我有:
this.importSection = Selector('.file-input');
在我的测试文件中,我有:
.setFilesToUpload(page.importSection, './my-file.xlsx')
我也尝试过直接调用我的测试文件中的元素,如下所示:
.setFilesToUpload('.file-input', './my-file.xlsx')
.setFilesToUpload(Selector('.file-input'), './my-file.xlsx')
运行其中任何一个时,我收到以下错误:“指定的选择器与文件输入元素不匹配。”
任何想法我做错了什么,我已经在 testcafe 上搜索过,不知道下一步该做什么。
node.js - 选择器存在但无法获取该节点的信息,因为指定的选择器与 DOM 树中的任何节点都不匹配
我正在使用 NodeJS 和 TestCafe 来构建 E2E 测试。
我们已经开始使用 BrowserStack 来执行跨浏览器测试,我正在尝试针对 Windows7:firefox 和 Windows10:firefox 运行脚本。
当我使用这些选项执行 TestCafe 时,只有这样我才会遇到此故障。因此,当我在 Samsung Galaxy S9:chrome 或 Samsung Galaxy S9:firefox 或 Windows 10:edge 或 Windows 7:chrome 上执行时,我看不到此故障。
我们的网站旨在适应浏览器窗口的大小。因此,如果窗口很小,那么我们会看到一个汉堡菜单按钮,该按钮会展开以提供登录、注销、项目等选项……如果窗口很大或(宽),那么所有内容都显示在标题栏上。
正如我所说,这一切都适用于许多不同的浏览器,但不是 Windows 7 或 10 上的 Firefox。我试图调整我的脚本代码以处理捕获汉堡菜单按钮(如果存在并忽略它)的更复杂场景如果在 DOM 中找不到它。我不想在我的解决方案中有任何代码来检查高度动态的测试场景参数/属性,如屏幕分辨率或特定浏览器或浏览器版本、操作系统或操作系统版本等......所以没有什么喜欢:
--UGGG 写上面那行代码也很痛苦。
所以这很可能是特定于浏览器的场景,但它再次与三星 Galaxy Tab 4:firefox 和三星 Galaxy S9:firefox 一起工作。
这是正在发生的事情:由于我使用 Firefox 在 Windows 7 和 10 桌面上运行脚本,因此在屏幕上找不到 hambuger 菜单。然而条件:
我还应该补充一点,hamburgerMenu 选择器是用 visibilityCheck: true 定义的
虽然我知道在这种情况下它不会影响结果,因为
那么不同
我已经知道第一个不能像上面使用的那样在 filter-if-condition 中解析,推荐的 filter-if-condition 是第二个,这就是我使用它的原因。
但是,代码块中的第一个 if 条件应该阻止代码进入代码块中的第二个 if 条件,因为实际上对于这个 OS-浏览器组合实际上没有显示汉堡菜单按钮。
我能想到的唯一另一件事是,Windows Desktop:Firefox 中网络元素上的 .visible 选项可能会以某种方式返回与 Android:firefox 或 Desktop:chrome 或 Android:chrome 不同的结果或行为。
我不想使用 document.getElementByID 方法,因为这在技术上不是 CSS 选择器,而且我们整个企业都在 CSS 选择器上进行了标准化,因此除了 CSS 选择器之外的任何遍历 DOM 的东西都不会通过我们的代码审查流程反正。
同样,我正在寻找一种适用于所有这些场景/情况的通用解决方案。有什么想法或想法吗?提前致谢!!
相关(但不同)问题:TestCafe - 如何在不通过测试的情况下检查 Web 元素是否存在或不存在? TestCafe - 如何在不通过测试的情况下检查 Web 元素是否存在?
testing - 无法从 OSX 上的 Testcafe IDE 连接到站点
我的灯具是这样设置的
通过一个简单的测试来查找输入并输入一些文本但是在运行命令时我得到
我已经在他们的问题板上多次看到这个问题,其中一个与 Linux 服务器上的 CI 集成有关,另一个似乎与尝试连接到 localhost 的类似问题
https://github.com/DevExpress/testcafe-browser-provider-electron/issues/20 https://github.com/DevExpress/testcafe/issues/1133
testcafe 的新手,任何帮助将不胜感激!
testing - 如果您没有从 process.env 获得 url,如何取消测试执行
在跑步者课程中,我可以执行取消测试任务。如果我不使用 runner 类,如何取消测试执行?我需要从我的代码中做到这一点。如果未提供环境变量,则退出测试谢谢
testing - TestCafe——断言元素的正确方法是可见的
基于各种论坛讨论、TestCafe 文档以及尝试比较结果,我仍然不确定哪种方法是断言页面元素可见的正确(或最佳)方法。
await t.expect(Selector('#elementId').visible).ok();
对比
await t.expect(await Selector('#elementId').visible).ok();
或者这些都是不正确的,还有另一种更可取的方法?这与断言元素存在相比如何?或者元素的其他属性,例如 :checked?
testing - 通过 ssh 连接时无法在远程 Windows 机器上找到 TestCafe
我已经在 Windows 7 上全局安装了 testcafe。当我通过 ssh 连接时,它找不到 testcafe。错误 - 'testcafe' 未被识别为内部或外部命令
我需要做什么才能使其工作?谢谢
javascript - 如何在测试之间传递可变数据
我正在我的helper.js
文件中生成一封随机电子邮件。我想使用这封随机电子邮件登录test.js
文件。
这就是我在 helper.js 中创建电子邮件的方式
这就是我想在我的test.js
文件中使用它的方式
我已经尝试了几件事没有运气。我如何才能在我的test.js
文件中使用生成的电子邮件?
proxy - Testcafe Localhost 后面有问题吗?
使用最新版本的 Testcafe...
我支持公司代理。使用 --proxy myproxy:proxyport 可以正常工作。但是当我尝试使用 localhost 时,它会不断响应服务不可用。我现在添加了 --proxy-bypass localhost:8080。但这具有相同的结果。
有没有其他人在公司代理后面遇到过 Testcafe 的问题 - 并使用 localhost?
testing - TestCafe:无法读取未定义的属性“消息”
在 Ubuntu 18.04 上运行 Jenkins 时。使用 Alpine 节点容器,我尝试在下面执行类似的操作。
我收到消息
注意:我相信我已经遵守了这个 Github 问题中报告的内容
这是我正在使用的管道片段。非常欢迎任何帮助。提前致谢!
编辑:我想我可以使用运行 docker 的这些步骤在本地重现这个:我的步骤:
git clone https://github.com/thomasleveil/docker-testcafe.git
- 修改 Dockerfile 以添加:
testcafe-browser-provider-browserstack \
到 nom 包列表 添加这些环境变量:
ENV BROWSERSTACK_USE_AUTOMATE=1
ENV BROWSERSTACK_USERNAME=XXXX
ENV BROWSERSTACK_ACCESS_KEY=XXXX
ENV BROWSERSTACK_PARALLEL_RUNS=1
Building the docker image
按照 README 中的步骤构建 docker 映像。跑
docker run --rm -it -v /Users/esherman/Code/testcafe_lp:/testcafe_lp tomdesinto/testcafe:latest testcafe "browserstack:chrome@67.0:OS X High Sierra" '/testcafe_lp/tests/*.js' -e
在第 3 步之后,出现同样的错误。希望它有帮助!