我正在使用量角器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;
答案 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"
。
因此,要获得所有信息的单一答案,以下是简化步骤:
全局安装Protactor:
npm install -g protractor
运行webdriver-manager update --ie
以更新Protactor使用的Selenium驱动程序。请注意,您是否正在运行全局 webdriver-manager
或本地 webdriver-manager
(即./node_modules./bin/webdriver-manager update help
);他们会在不同的位置解压司机;只有本地会在[Project dir]
查看上一个命令的日志。它必须显示驱动程序在特定文件夹中解压缩。转到该文件夹并找到IEDriverServer。就我而言,它是:"[Project dir]\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_X.XX.X.exe
。您需要在下一步中提供此文件的相对路径。
在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"
},
这就是我需要做的一切。我不事先启动服务器,只需运行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中运行的步骤:
这将成功启动Internet Explorer。 谢谢