标签: webdriver-io

扩展 Typescript 中的内置类型

我有以下结构:

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'. …

javascript typescript webdriver-io ts-node typescript3.0

4
推荐指数
1
解决办法
5258
查看次数

IntelliJ IDEA 2020 对 webdriverio 选择器的支持

我有这样的代码:

get alcoholLink() {
    return $('a=Alcohol');
}  
Run Code Online (Sandbox Code Playgroud)

这是有效的 webriverio 选择器,用于获取带有文本“Alcohol”的元素。
但 IntelliJ IDEA 将其标为红色下划线并显示“意外令牌”错误。
有谁知道如何调整 IntelliJ 设置以便将代码识别为有效的 webdriverio 选择器?

谢谢,米斯玛斯

intellij-idea webdriver-io

4
推荐指数
1
解决办法
496
查看次数

万一失败,如何继续运行 package.json 中定义的脚本?

我在 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)

javascript node.js webdriver-io package.json npm-scripts

4
推荐指数
1
解决办法
3398
查看次数

错误:“ts-node/esm/transpile-only 'resolve'”没有调用其链中的下一个钩子,并且执行了

1

2

使用 npx wdio 命令运行测试时出现此错误。

如何解决这个问题。错误:“ts-node/esm/transpile-only 'resolve'”没有调用其链中的下一个钩子,也没有明确发出短路信号。如果这是故意的,请包含shortCircuit: true在钩子的返回中。

javascript ecmascript-6 appium webdriver-io

4
推荐指数
1
解决办法
7368
查看次数

如何在运行测试套件时仅启动/停止一次NodeJS服务器

我正在为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)

mocha.js node.js selenium-webdriver sails.js webdriver-io

3
推荐指数
1
解决办法
3214
查看次数

使用 webdriver 和 selenium 验证元素不存在

我正在使用WebdriverIOselenium-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)

有什么建议吗?如果您需要更多信息,请与我们联系。

javascript selenium automated-tests chai webdriver-io

3
推荐指数
1
解决办法
5490
查看次数

无法连接到selenium服务器以执行webdriverIO测试

我,当我通过控制台执行webdriverIO测试时出现运行时错误.

这是错误无法连接到selenium服务器以执行webdriverIO测试.

我可以通过浏览器访问我的selenium服务器(http:// localhost:4444/wd/hub/static/resource/hub.html)但它仍然无法正常工作.

拜托,任何人都可以帮助我.

非常感谢您的帮助.

selenium selenium-webdriver webdriver-io

3
推荐指数
1
解决办法
6807
查看次数

如何使用webdriverio,mocha和phantomjs测试将字段设置为空字符串?

当用户不使用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)

testing jquery mocha.js phantomjs webdriver-io

3
推荐指数
1
解决办法
1129
查看次数

WebdriverIO - 如何向Jasmine测试发送参数?

我有一堆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)

jasmine selenium-webdriver webdriver-io

3
推荐指数
1
解决办法
3648
查看次数

为WebdriverIO/Cucumber框架生成HTML报告

我正在使用WebdriverIO/Cucumber(wdio-cucumber-framework)进行测试自动化.我想在HTML文件中获得测试执行结果.截至目前,我正在使用Spec Reporter(wdio-spec-reporter).这有助于在控制台窗口中打印结果.但我希望所有的执行报告都在HTML文件中.

如何在HTML文件中获取WebdriverIO测试执行结果?

谢谢.

selenium reporting cucumberjs allure webdriver-io

3
推荐指数
1
解决办法
4243
查看次数