我正在深入研究AngularJS的量角器测试世界。
所有教程都建议我在webdriver-manager update
之后执行测试之前执行以下命令:
webdriver-manager start
根据webdriver-manager
人,start
命令将启动selenium服务器'。确实,一旦我运行上述命令,我就可以在http://127.0.0.1:4444/wd/hub
我的问题是:上述是否必要?
我目前在没有上述命令的情况下运行我的测试。
我所做的就是:
webdriver-manager update
php -S localhost:8000 -t dist/
protractor ./test/protractor.config.js
即使我已排除webdriver-manager start
,我的测试也按预期运行。
有人可以解释为什么webdriver-manager start
是必要的吗?
:编辑:
我的量角器/ fooTests.js :
exports.config = {
directConnect: true,
capabilities: {
'browserName': 'chrome'
},
specs: ['protractor/fooTests.js'],
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
我的量角器/ fooTests.js :
describe('test for the bar code', function() {
it('should login', function() {
browser.get('http://localhost:8000');
element(by.model('password')).sendKeys('123456');
element(by.css('[type="submit"]')).click();
});
it('should inspect element ', function() {
expect(element(by.id('foo-script')).isPresent()).toBe(true);
console.log('Login Success');
});
});
答案 0 :(得分:3)
量角器正在向Selenium发送命令,Selenium正在使用其驱动程序与浏览器进行通信。
webdriver-manager start
正在启动Selenium。
有3个基本选项:
directConnect
。这使得量角器直接与selenium驱动程序通信,而不使用Selenium服务器。但是,此选项的功能有限:directConnect:true - 您的测试脚本直接与Chrome驱动程序或Firefox驱动程序通信,绕过任何Selenium Server。如果是这样,将忽略seleniumAddress和seleniumServerJar的设置。如果您尝试使用Chrome或Firefox以外的浏览器,则会引发错误。
连接到seleniumAddress
指定的已运行的selenium服务器(本地或远程)。可以使用webdriver-manager start
脚本启动服务器。
从测试脚本启动服务器。
您可以浏览文档https://github.com/angular/protractor/blob/master/docs/server-setup.md
中的所有选项