首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >业力:无法使用业力启动浏览器-网络驱动程序-启动器

业力:无法使用业力启动浏览器-网络驱动程序-启动器
EN

Stack Overflow用户
提问于 2019-10-21 07:25:14
回答 1查看 1.6K关注 0票数 1

尝试使用业力- && grid-启动器启动chrome/firefox来执行测试,但无法打开浏览器。

有谁能用selenium和业力分享e2e测试的工作代码,在谷歌上搜索,但不能找到完整的代码,只有片段在那里。

我的业力配置文件::

代码语言:javascript
复制
 module.exports = function (config) {
var webdriverConfig = {
    hostname: 'localhost',
    port: 4444,
  }


let customLaunchers = {

    firefoxCustom: {
        base: 'WebDriver',
        config: webdriverConfig,
        browserName: 'firefox',
        version:'ANY',
        platform:'ANY'
      },

};

config.set({
  basePath: './',
  frameworks: ["mocha"],
  reporters: ['progress'],

  plugins: [
    'karma-webdriver-launcher',
  'karma-selenium-grid-launcher',
  'karma-mocha',
  'selenium-webdriver'
],


  customLaunchers: customLaunchers,
  browsers: [ 'firefoxCustom'],
  files: [
    "tests/*.spec.js"
  ],
  singleRun: true
});
}

测试档案::

代码语言:javascript
复制
const {Builder, By, until} = require('selenium-webdriver');

(async function example() {
const driver = await new Builder().forBrowser('firefox').build();

try {
    await driver.get('https://www.google.com');
    await driver.findElement(By.name('q')).sendKeys('hello');
    await driver.findElement(By.id('tsf')).submit();
}catch(err)
{
    console.log(err)
} 
finally {
    await driver.quit();
}
})();

package.json

代码语言:javascript
复制
{
 "name": "karmatest2",
 "version": "1.0.0",
 "main": "index.js",
 "scripts": {
  "test": ""
 },
 "author": "",
 "license": "ISC",
 "description": "",
 "devDependencies": {
 "chai": "^4.2.0",
 "chromedriver": "^77.0.0",
 "geckodriver": "^1.19.0",
 "karma": "^4.4.1",
 "karma-chai": "^0.1.0",
 "karma-chrome-launcher": "^3.1.0",
 "karma-firefox-launcher": "^1.2.0",
 "karma-ie-launcher": "^1.0.0",
 "karma-jasmine": "^2.0.1",
 "karma-mocha": "^1.3.0",
 "karma-selenium-grid-launcher": "^0.3.0",
 "karma-webdriver-launcher": "^1.0.7",
 "mocha": "^6.2.2",
 "require": "^2.4.20",
 "selenium-webdriver": "^3.6.0",
 "wd": "^1.11.4"
 } 
 }

获取错误:

代码语言:javascript
复制
 21 10 2019 11:53:49.329:INFO [karma-server]: Karma v4.4.1 server started at 
 http://0.0.0.0:9876/
 21 10 2019 11:53:49.332:INFO [launcher]: Launching browsers firefoxCustom with concurrency 
 unlimited
 21 10 2019 11:53:49.335:INFO [launcher]: Starting browser firefox via Remote WebDriver
 21 10 2019 11:53:49.374:ERROR [WebDriver]: WebDriver command failed {
 spec: {
   platform: 'ANY',
   testName: 'Karma test',
   tags: [],
   version: 'ANY',
   base: 'WebDriver',
   browserName: 'firefox'
  },
 error: Error: [get("http://localhost:9876/?id=18408460")] Error response status: 6 Selenium 
 error: No active session with ID url
EN

回答 1

Stack Overflow用户

发布于 2020-05-20 16:54:33

我让它与Selenium和独立Chrome一起使用Docker。

注意:同样的配置应该在Docker之外工作,但它意味着自己设置Chrome、Chromedriver和Selenium。特别是Selenium Hub (java)是个麻烦。

karma.conf.js

代码语言:javascript
复制
module.exports = function karmaConfig(config) {

    config.set({
        frameworks: ['jasmine'],
        files: [
            // src files
            // spec files
        ],
        exclude: [],
        preprocessors: {},
        reporters: ['dots'],
        port: 9876,
        logLevel: config.LOG_INFO,
        autoWatch: false,
        singleRun: true,

        // RELEVANT BIT
        browsers: ['ChromeWebDriver'],
        customLaunchers: {
            ChromeWebDriver: {
                base: 'WebDriver',
                browserName: 'chrome',
                version: 'ANY',
                platform: 'ANY',
            }
        },
        captureTimeout: 60000,
        // END RELEVANT BIT
    });

};

package.json (可能有点过时):

代码语言:javascript
复制
"karma": "1.3.0",
"karma-jasmine": "0.1.6",
"karma-webdriver-launcher": "1.0.7",

我在主机网络上使用Docker运行Selenium:docker run -d --network=host selenium/standalone-chrome:3,这在主机上公开了http://127.0.0.1:4444/wd/hub。然后,在启动karma.conf.js之前,我要等到Selenium响应完毕。

日志:

代码语言:javascript
复制
> karma start tests/javascript/karma.conf.js

20 05 2020 18:42:52.289:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
20 05 2020 18:42:52.298:INFO [launcher]: Launching browser ChromeWebDriver with unlimited concurrency
20 05 2020 18:42:52.317:INFO [launcher]: Starting browser chrome via Remote WebDriver
20 05 2020 18:42:56.024:INFO [Chrome 81.0.4044 (Linux 0.0.0)]: Connected on socket /#BeUqePvSlEC_aYzHAAAA with id 6615338
............................................................
Chrome 81.0.4044 (Linux 0.0.0): Executed 60 of 60 SUCCESS (0.67 secs / 0 secs)
20 05 2020 18:42:57.874:INFO [WebDriver]: Killed Karma test.
2020/05/20 18:42:57 Command finished successfully.

我不设置customLauncher.ChromeWebDriver.config,因为我匹配默认的Selenium集线器位置。This also matches the default in wd,这是karma-webdriver-launcher使用的包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58481584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档