我使用量angular器1.3.1和运行iedriverserver.exe 2.43.0.0与IE11安装(窗口)。 这是我的规格:
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 } };
得到这个错误,但解决scheme的任何想法:
UnknownError: The path to the driver executable must be set by the webdriver.ie.driver system property;
更新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启动来重新启动服务器
取自: http : //protractorsupport.blogspot.com/2015/05/use-protractor-with-internet-explorer.html
下载IEDriverserver.exe请在您的配置文件中指定相同
seleniumArgs: ['-Dwebdriver.ie.driver=<path to IEDriverserver.exe>']
根据量角器配置文档 , 配置值"seleniumArgs"
已被弃用 。
所以,所有的信息都有一个单一的答案,这里是简化的步骤:
全局安装Protactor:
npm install -g protractor
运行webdriver-manager update --ie
来更新Protactor使用的seleniumium驱动程序。
看看前一个命令的日志。 它必须显示驱动程序被解压到一个特定的文件夹。 转到该文件夹并找到IEDriverserver。 在我的情况下是: "[Project dir]\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverserver_x64_X.XX.X.exe
。您将需要在下一步中提供该文件的相对路径。
在conf.js
文件中,添加下列键和值:
multiCapabilities : [ { 'browserName' : 'chrome' }, { 'browserName' : 'internet explorer' } ], localseleniumiumStandaloneOpts : { jvmArgs : ["-Dwebdriver.ie.driver=<RELATIVE PATH TO IE DRIVER>"] // eg: "node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverserver_x64_X.XX.X.exe" },
这就是我需要做的。 我不预先启动服务器,我只是运行protactor conf.js
我猜,现在更容易了。
我在这个问题上看了几个小时,最好的办法似乎是:
1)下载webdriver-manager –ie更新
这应该从谷歌..硒…释放文件夹下载驱动程序,并将其放置在您的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
疯狂的道路,使其运行。 从长远来看,这不可能是这样,请用您的经验/反馈评论我的帖子。
理查德