问题标签 [codeceptjs]

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

javascript - 将 codeceptJS 与 PhpStorm 一起使用

我刚开始使用codeceptJS,我希望 PhpStorm 编辑器能够正确识别代码。

我尝试告诉编辑器使用带有 Node.js Core 和 Globals 的 JavaScript 库。我已经搜索了一个对网络有帮助的插件。没有什么...

我可以开始禁用检查,但我希望所有漂亮的编辑器功能都能正常工作。

我正在使用 PhpStorm 8,但如果有帮助可以升级。

任何人都知道如何设置 PhpStorm 以便正确处理 codeceptJS 代码?

0 投票
1 回答
1719 浏览

javascript - codeceptJS / webdriverIO 使用抓取命令退出脚本

我是 codeceptJS 的新手,但最好我能说它根本不适用于产量。

我已经尝试了几个抓取命令以及 executeScript。我知道这些命令正在工作,因为出于某种原因,在 yield 之后确实执行了一两行,所以我可以输出我分配的变量。但是,我永远无法使用它,因为浏览器关闭并且脚本终止。更糟糕的是,我可以进行一个明显无效的测试(I.see('some bogus non existent text');) 并且场景以成功退出!

以上是实时的,因此您可以执行它来查看问题。如果这很重要,请使用 Linux 和 FireFox 进行测试。

谁能给我一个如何使用yield并继续测试的例子?

更新:开发人员说这是一个错误,很快就会修复。

0 投票
2 回答
853 浏览

angular - 如何使用 angular2 设置 codecept e2e 测试?

我是 e2e 测试的新手。我想试试http://codecept.io/angular/

自从我使用https://github.com/AngularClass/angular2-webpack-starter Protractor/Jasmine启动我的应用程序以来,它已经在工作了。

据我了解,codecept 正在量角器之上工作。我已经正确安装了它,但是当我启动一个简单的测试时,我遇到了一个失败的错误。

这是我的 codecept.json :

这是我的测试:

这是错误日志:

有什么帮助吗?

0 投票
3 回答
3423 浏览

codeceptjs - codeceptJS - 如何从列表中单击特定元素

使用量角器可以通过做element.all(by.css("li")).get(0)

如何用codecept做到这一点?

我试过没有成功:

0 投票
1 回答
450 浏览

node.js - 使用 PhantomJS 或其他库抓取时处理弹出窗口

有很多图书馆可以从网页中抓取信息。我看过的其中一些是:

令人惊讶的是,它们都没有提供一种抓取弹出窗口的方法。即使他们这样做,我也无法弄清楚它是如何完成的。场景是这样的:

...现在,网页会打开一个弹出窗口(一个实际的浏览器窗口),我需要抓取它。

弹出窗口的任何建议或解决方法?

0 投票
2 回答
1742 浏览

javascript - Codeceptjs 仅在全局安装时有效

当我打开安装CodeceptJS的说明时,它提供了在本地和全局安装 node_module 的选项。但是,只有全局安装有效。当我在我的 express 应用程序中本地安装 codeceptjs 然后尝试初始化 codecept 安装时,我得到“bash: codeceptjs: command not found”。有任何想法吗?

nodejs - v6.2.2,express - v4.13.4,使用mac

0 投票
3 回答
2485 浏览

node.js - codeceptjs - 错误:无法连接到 selenium 服务器/此命令需要会话 ID,但在响应有效负载中未找到

我使用这个快速入门指南来安装这个测试框架:https ://github.com/codeception/codeceptjs/ 。

成功安装后,我编辑了“mytest_test.js”并添加了以下内容:

之后我开始了我的测试:

我的结果是:

我在输出文件夹中没有任何屏幕截图,这个框架不起作用,我不明白为什么。

包.json

codecept.json

steps_file.js

0 投票
2 回答
529 浏览

javascript - 如何查找加载网站后生成的输入值?

我用流星火焰构建了一个应用程序,现在我正在尝试用 CodeceptJS 对其进行测试。问题是,我的所有输入字段在 DOM(F12 模式)中都没有值,但我在浏览器中看到了这些值。在流星中,我使用模板助手从我的 MongoDB 集合中读取它们并将它们传递给 blaze / spacebars。因此,meteor 使用 JavaScript 实时写入所有值(在网站完全加载/生成之后)。

我有一个值为“codeceptjs”的输入字段。但我在 DOM 中看不到它(chrome:F12 模式)。它只向我展示了这个:

但是,在我的 Meteor blaze 文件中,我有以下内容:

JQuery 也找不到它们,因为 DOM 中没有值:

如何在不更改工作应用程序的情况下使用 jQuery / codeceptjs 访问实时输入值?

0 投票
1 回答
1143 浏览

javascript - 为什么 CodeceptJS 不执行我的测试中的步骤?为什么我看不到正在执行的测试?

我最近遇到了 CodeceptJS,我想尝试一下。我正在关注CodeceptJS 的 QuickStart 页面上的教程,但现在我面临两个问题:

  1. 测试似乎只执行了第一步
  2. 我没有看到测试的执行

以下是我运行时codeceptjs init

在此处输入图像描述

我运行时的以下内容codeceptjs run --steps

在此处输入图像描述

以下是我的测试(Test101_test.js):

来自 selenium 服务器的日志:

17:29:38.490 信息 - 执行:[新会话:功能 [{rotatable=true,locationContextEnabled=true,loggingPrefs=org.openqa.selenium.logging.LoggingPreferences@35f1c325,browserName=firefox,javascriptEnabled=true,handlesAlerts=true, requestOrigins={name=webdriverio, version=4.6.2, url= http://webdriver.io }}]]) 17:29:38.496 INFO - 为 Capabilities [{rotatable=true, locationContextEnabled=true, loggingPrefs=org.openqa.selenium.logging.LoggingPreferences@35f1c325, browserName=firefox, javascriptEnabled=true, handlesAlerts=true, requestOrigins={name=webdriverio, version=4.6.2, url= http://webdriver.ioThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ... 1 更多原因:sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl. java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor (FirefoxDriverProvider.java:86) ... 9 更多原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 lang.reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java. org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:86) 上的 lang.reflect.Constructor.newInstance(Constructor.java:423) ... 9 更多原因:java.lang.IllegalStateException: The驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 lang.reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java. org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:86) 上的 lang.reflect.Constructor.newInstance(Constructor.java:423) ... 9 更多原因:java.lang.IllegalStateException: The驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.server .FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:86) ... 9 更多原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.server .FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:86) ... 9 更多原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 callConstructor(FirefoxDriverProvider.java:86) ... 9 更多原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 callConstructor(FirefoxDriverProvider.java:86) ... 9 更多原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅 https://github.com/mozilla/geckodriver。最新版本可以从https://github.com/mozilla/geckodriver/releases下载 驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver。最新版本可以从 https://github.com/mozilla/geckodriver/releases下载

有人可以帮我找出我可能做错了什么吗?

0 投票
2 回答
3303 浏览

codeception - CodeceptJS 中的 I.click()-selector - 如何找到具有特定 innerHTML 的第一个按钮

我有各种按钮和几个具有相同名称“开始”的按钮。我需要单击第一个找到的具有此名称的按钮(innerHTML)。使用 jQuery,这适用于:

$('button:contains(Start):first').click()

它如何与 CodeceptJS 中的 I.click()-Selector 一起使用?我找不到正确的语法并且总是得到:

“无效的选择器:指定了无效或非法的选择器”

这是此功能的 API:https ://github.com/Codeception/CodeceptJS/blob/master/docs/webapi/click.mustache

我发现的唯一可行的解​​决方案是:

I.click('//button[1]');

但是这个解决方案令人困惑,因为你需要知道这个元素的确切数字 - 而且我有很多不同名称的按钮。这也不允许我通过诸如“开始”之类的 innerHTML 进行搜索。