我有以下结构:
project
|- types
|- global.d.ts
|- string.d.ts
|- wdio.d.ts
|- src
|- Models
|- Resources
|- Components
|- Extensions
|- string.ts
|- ...
|- tsconfig.json
|- wdio.conf.js
Run Code Online (Sandbox Code Playgroud)
我尝试用函数扩展字符串的原型。到目前为止我尝试了很多方法,我在几个网站上找到了。但要么tsc给我错误,要么 PHPStorm 显示错误消息。
project
|- types
|- global.d.ts
|- string.d.ts
|- wdio.d.ts
|- src
|- Models
|- Resources
|- Components
|- Extensions
|- string.ts
|- ...
|- tsconfig.json
|- wdio.conf.js
Run Code Online (Sandbox Code Playgroud)
我将类的增强添加String到 d.ts 文件中。然后我在一个单独的文件中定义函数的主体。当我在文件中实现它时src/Extensions/string.ts,该tsc命令没有给出错误消息,但 PHPStorm 显示以下错误:
TS2339: Property 'myCustomFn' does not exist on type 'String'. …
我有这样的代码:
get alcoholLink() {
return $('a=Alcohol');
}
Run Code Online (Sandbox Code Playgroud)
这是有效的 webriverio 选择器,用于获取带有文本“Alcohol”的元素。
但 IntelliJ IDEA 将其标为红色下划线并显示“意外令牌”错误。
有谁知道如何调整 IntelliJ 设置以便将代码识别为有效的 webdriverio 选择器?
谢谢,米斯玛斯
我在 package.json 文件中有这个:
{
"name": "test demo",
"version": "1.0.0",
"description": "test demo scripts",
"scripts": {
"test:v1": "wdio src/resources/config/wdio.chrome.conf.js --spec test/Tests.spec.ts",
"test:v2": "wdio src/resources/config/wdio.firefox.conf.js --spec test/Tests.spec.ts",
"test": "npm run test:v1 && npm run test:v2"
},
...
}
Run Code Online (Sandbox Code Playgroud)
当运行此命令时:
npm run test
Run Code Online (Sandbox Code Playgroud)
如果test:v1失败,则test:v2根本不执行脚本。
有没有一种方法可以配置它,以便所有脚本都运行,无论其中一些脚本是否失败?
编辑:当我在 package.json 中尝试此操作时:
"test": "npm run test:v1 ; npm run test:v2"
Run Code Online (Sandbox Code Playgroud)
然后我仍然没有执行这两个脚本,只是test:v1执行时出错。
这是我在控制台中得到的:
C:\2020\demo>npm run test
> demo@1.0.0 test C:\2020\demo
> npm run test:v1 ; npm run test:v2
> demo@1.0.0 test:v1 C:\2020\demo …Run Code Online (Sandbox Code Playgroud) 

使用 npx wdio 命令运行测试时出现此错误。
如何解决这个问题。错误:“ts-node/esm/transpile-only 'resolve'”没有调用其链中的下一个钩子,也没有明确发出短路信号。如果这是故意的,请包含shortCircuit: true在钩子的返回中。
我正在为NodeJS编写selenium测试套件.这是一个示例测试文件:
var Sails = require('sails');
// create a variable to hold the instantiated sails server
var app;
var client;
// Global before hook
before(function(done) {
// Lift Sails and start the server
Sails.lift({
log: {
level: 'error'
},
environment: 'test',
port: 1338
}, function(err, sails) {
app = sails;
done(err, sails);
});
});
// Global after hook
after(function(done) {
app.lower(done);
});
beforeEach(function(done) {
client = require('webdriverjs').remote({desiredCapabilities:{browserName:'chrome'}});
client.init(done);
});
afterEach(function(done) {
client.end(done);
});
describe("Go to home page", function() {
it('should work', …Run Code Online (Sandbox Code Playgroud) 我正在使用WebdriverIO并selenium-standalone编写自动化测试来验证我们用户界面的各个部分是否正常工作。
我需要验证页面上不存在元素。例如,我们的系统允许员工跟踪我们向客户推荐的各种类型的资源。如果工作人员不小心添加了错误的资源,他们可以删除它,我想验证该资源是否确实被删除并且不在页面上。
WebdriverIO 有一个.isExisting()属性,但无法检查某些内容是否不存在(或不可见/不存在)。我也可以使用Chai断言来解决这个问题,但还没有深入研究那个世界。
这是我的代码片段:
it('I can delete a resource from a need', function() {
return driver
.moveToObject('span.ccx-tasklist-task') // Hover mouse over resource
.click('div.referral-controls a.btn.dropdown-standalone') // Click Resource drop-down
.click('div.referral-controls.ccx-dropdown-menu-selected li > a') // Delete Resource
.pause(2000);
// Need to Verify that resource was deleted here
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?如果您需要更多信息,请与我们联系。
我,当我通过控制台执行webdriverIO测试时出现运行时错误.
这是错误无法连接到selenium服务器以执行webdriverIO测试.
我可以通过浏览器访问我的selenium服务器(http:// localhost:4444/wd/hub/static/resource/hub.html)但它仍然无法正常工作.
拜托,任何人都可以帮助我.
非常感谢您的帮助.
当用户不使用webdriverio,mocha和phantomjs在字段中输入任何内容时,我正在测试工具提示的外观.以下是测试代码:
// failing test
describe ('Test appearance of a tooltip upon entering nothing', function(){
before(function(){
return browser.url(site);
});
before(function(){
return browser.setValue('#id_field1', '', 'tab')// mimicking users entering nothing
});
it('should notify users via a tooltip "Enter a valid lotno"', function(){
return browser.getHTML('body')
.then(function(form, done){
return form.should.contain('Enter a valid lotno');
setTimeout(done, 1000);
});
}); // it block ends here
});// describe block ends for tooltip tests
Run Code Online (Sandbox Code Playgroud)
这不显示工具提示文本.
我有另一个测试,如果用户输入一个不正确的值,它应该显示一个工具提示文本,这可以正常工作.以下是通过测试:
// passing test
describe ('Test appearance of a tooltip upon entering non numbers', function(){ …Run Code Online (Sandbox Code Playgroud) 我有一堆Webdriver.io/Selenium测试,我正在使用jasmine测试框架编写我的测试,所以我有一个wdio.conf.js文件,我已配置为使用jasmine,根据这些说明
问题是我正在测试一个基于广告/营销的高度动态/可配置的Web应用程序,并要求我传递大量配置信息,以便测试知道要测试的内容.例如,在命令行,我想运行如下:
> wdio --campaignId=123 --productId=456
Run Code Online (Sandbox Code Playgroud)
我可以修改wdio.conf.js文件中的'onPrepare'函数/事件来获取这些参数,如下所示:
exports.config = {
....other options (snip)...
framework: 'jasmine',
jasmineNodeOpts: {
defaultTimeoutInterval: 9999999,
expectationResultHandler: function (passed, assertion) { }
},
onPrepare: function (config) {
var campaignId = parseInt(process.argv[2]
.replace('--campaignId=', ''));
var productId = parseInt(process.argv[3]
.replace('--productId=', ''));
config.params = {
campaignId: campaignId,
productId: productId
};
}
};
Run Code Online (Sandbox Code Playgroud)
...但我不知道如何将这些传递给我的茉莉花测试.我试过从process.argv读取但是缺少campaignId和productId args,例如
describe('Campaign Tests', function () {
beforeEach(function(done) {
browser
.session(function(err, client) {
var campaignId = parseInt((process.argv[2] || '')
.replace('--campaignId=', ''));
var productId = parseInt((process.argv[3] …Run Code Online (Sandbox Code Playgroud) 我正在使用WebdriverIO/Cucumber(wdio-cucumber-framework)进行测试自动化.我想在HTML文件中获得测试执行结果.截至目前,我正在使用Spec Reporter(wdio-spec-reporter).这有助于在控制台窗口中打印结果.但我希望所有的执行报告都在HTML文件中.
如何在HTML文件中获取WebdriverIO测试执行结果?
谢谢.
webdriver-io ×10
javascript ×4
selenium ×3
mocha.js ×2
node.js ×2
allure ×1
appium ×1
chai ×1
cucumberjs ×1
ecmascript-6 ×1
jasmine ×1
jquery ×1
npm-scripts ×1
package.json ×1
phantomjs ×1
reporting ×1
sails.js ×1
testing ×1
ts-node ×1
typescript ×1