尝试使用业力- && grid-启动器启动chrome/firefox来执行测试,但无法打开浏览器。
有谁能用selenium和业力分享e2e测试的工作代码,在谷歌上搜索,但不能找到完整的代码,只有片段在那里。
我的业力配置文件::
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
});
}测试档案::
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
{
"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"
}
}获取错误:
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发布于 2020-05-20 16:54:33
我让它与Selenium和独立Chrome一起使用Docker。
注意:同样的配置应该在Docker之外工作,但它意味着自己设置Chrome、Chromedriver和Selenium。特别是Selenium Hub (java)是个麻烦。
karma.conf.js
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 (可能有点过时):
"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响应完毕。
日志:
> 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使用的包。
https://stackoverflow.com/questions/58481584
复制相似问题