使用量角器如何设置Internet Explorer配置?

时间:2014-10-16 02:21:58

标签: windows angularjs internet-explorer protractor

我正在使用量角器1.3.1并运行安装了IE11的iedriverserver.exe 2.43.0.0(windows)。 这是我的规范:

describe('quick test IE driver', function () {
    it('should go to ng homepage', function () {
        browser.driver.get('https://angularjs.org/');
        var title =element(by.css('h1')).getText();
        expect(title).toBe('HTML enhanced for web apps!');
    });
});

这是我的protractor.conf.js:

exports.config = {
    // The address of a running selenium server.
    //seleniumAddress: 'http://localhost:4444/wd/hub',

    capabilities: {
        'browserName': 'internet explorer',
        'platform': 'ANY',
        'version': '11'
    },


    // Spec patterns are relative to the current working directly when
    // protractor is called.
    specs: ['main.spec.js'],

    // Options to be passed to Jasmine-node.
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000,
        isVerbose:true,
        includeStackTrace:true

    }
};

虽然有任何想法可以解决这个问题:

UnknownError: The path to the driver executable must be set by the webdriver.ie.driver system property; 

5 个答案:

答案 0 :(得分:13)

更新IE的网络管理员

第一步是使用webdriver manager更新ie webdriver。打开命令提示符并运行下面给出的命令

webdriver-manager update --ie

转到npm位置在此步骤中移至NPM_LOCATION(系统中安装了npm的文件夹。移至以下路径“NPM_LOCATION \ node_modules \ protractor \ selenium”在此位置检查IEDriverServer.exe是否存在

改变conf.js中的IE

// conf.js exports.config = {   seleniumAddress: 'http://localhost:4444/wd/hub',   specs: ['specs.js'],   capabilities: {
    'browserName': 'internet explorer' // conf for internet explorer     } }


// spec.js describe('Protractor Demo App', function() {   it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');
    expect(browser.getTitle()).toEqual('Super Calculator');   }); });

现在运行量角器conf.js

注意:确保通过 - > webdriver-manager start

重新启动服务器

取自:http://protractorsupport.blogspot.com/2015/05/use-protractor-with-internet-explorer.html

答案 1 :(得分:7)

根据the protractor config doc不推荐使用配置值"seleniumArgs"

因此,要获得所有信息的单一答案,以下是简化步骤:

  1. 全局安装Protactor:

    npm install -g protractor
    
  2. 运行webdriver-manager update --ie以更新Protactor使用的Selenium驱动程序。请注意,您是否正在运行全局 webdriver-manager本地 webdriver-manager(即./node_modules./bin/webdriver-manager update help);他们会在不同的位置解压司机;只有本地会在[Project dir]

  3. 中解压缩
  4. 查看上一个命令的日志。它必须显示驱动程序在特定文件夹中解压缩。转到该文件夹​​并找到IEDriverServer。就我而言,它是:"[Project dir]\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_X.XX.X.exe。您需要在下一步中提供此文件的相对路径。

  5. conf.js文件中,添加以下按键&值。请注意使用localSeleniumStandaloneOpts,这意味着您应该删除属性seleniumAddress if you have it

    multiCapabilities : [
      {
        'browserName' : 'chrome'
      }, {
        'browserName' : 'internet explorer'
      }
    ],
    
    localSeleniumStandaloneOpts : {
      jvmArgs : ["-Dwebdriver.ie.driver=<RELATIVE PATH TO IE DRIVER>"] // e.g: "node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer_x64_X.XX.X.exe"
    },
    
  6. 这就是我需要做的一切。我不事先启动服务器,只需运行protactor conf.js。我想现在更容易了。

答案 2 :(得分:4)

下载IEDriverServer.exe 请在配置文件中指定相同的内容

seleniumArgs: ['-Dwebdriver.ie.driver=<path to IEDriverServer.exe>']

答案 3 :(得分:3)

我正在寻找这个问题几个小时,最好的方法似乎是:

1)下载 webdriver-manager --ie update

这应该从google ... selenium ... release文件夹下载驱动程序,并将其直接放在npm本地存储库中的好位置。

2)在测试的config.js文件中设置: ...

multiCapabilities: [
    //{
    //    browserName: 'chrome',
    //    version: 'ANY'
    //},
    //{
    //    browserName: 'firefox',
    //    version: 'ANY'
    //},
    {
        browserName: 'internet explorer',
        version: 'ANY'
    },
],
// For some IE functions you may need to specify defaultTimeoutInterval

... 3)设置IE:

关注此帖 http://jimevansmusic.blogspot.fr/2012/08/youre-doing-it-wrong-protected-mode-and.html

PS:关于IE的“保护模式”设置,对所有区域进行相同的设置非常重要。我更喜欢为所有区域打开保护模式

4)修补注册表

如此处所述:http://heliumhq.com/docs/internet_explorer

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BFCACHE] “IEXPLORE.EXE”= DWORD:00000000

5)IE 11更新打破了系统的工作方式:

我最近的问题是“服务器没有提供任何堆栈跟踪......”这是由于2014年12月17日的更新。卸载它然后它很好。

https://code.google.com/p/selenium/issues/detail?id=3390

让它运行的疯狂路径。从长远来看,它不能像这样,请根据您的经验/反馈评论我的帖子。

理查德

答案 4 :(得分:0)

这是我的配置文件:

exports.config = {

seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
capabilities: {
'browserName': 'internet explorer',
 },

framework: 'jasmine',

// Spec patterns are relative to the current working directory when
// protractor is called.
specs: ['your_spec_file.js'],

};

在IE中运行的步骤:

  1. 在Visual Studio Code中需要两个终端, 在第一个终端中,运行命令“ webdriver-manager start”启动硒服务器。
  2. 在第二个终端中,将js配置文件运行为: 量角器conffile_name.js

这将成功启动Internet Explorer。 谢谢