我正在研究AngularJS的 Protractor 测试世界。

所有教程都建议我在webdriver-manager update之后并在执行测试之前执行以下操作:webdriver-manager start
根据webdriver-manager的说法,start命令将“启动 Selenium 服务器”。的确如此,一旦我运行了上面的命令,我就可以在http://127.0.0.1:4444/wd/hub上看到一些东西

我的问题是:以上必要吗?

我目前在没有上述命令的情况下运行测试。

我要做的是:webdriver-manager updatephp -S localhost:8000 -t dist/protractor ./test/protractor.config.js
即使排除了webdriver-manager start,我的测试仍按预期运行。

有人可以解释为什么需要webdriver-manager start吗?

:编辑:

我的 Protractor/fooTests.js :

exports.config = {
    directConnect: true,
    capabilities: {
        'browserName': 'chrome'
    },
    specs: ['protractor/fooTests.js'],
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000
    }
};

我的 Protractor/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');
    });
});

最佳答案

Protractor 向Selenium发送命令,而Selenium正在使用其驱动程序与浏览器通信。

webdriver-manager start

正在启动 Selenium 。

有3个基本选项:
  • directConnect。这使 Protractor 无需使用Selenium服务器即可直接与selenium驱动程序进行通信。但是,此选项的功能受到限制:


  • 连接到seleniumAddress指定的已经运行的 Selenium 服务器(本地或远程)。可以使用webdriver-manager start脚本启动服务器。
  • 从测试脚本启动服务器。

  • 您可以浏览https://github.com/angular/protractor/blob/master/docs/server-setup.md文档中的所有选项

    关于angularjs - `webdriver-manager start`是否必要?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30395011/

    10-13 05:03