Chrome中的量angular器错误消息“不支持的命令行标志”?
我是Protractor的新用户,我遇到了使用Chrome运行我的testing的错误 ( 错误显示在已启动浏览器的地址栏下面 ):
您正在使用不受支持的命令行标志–ignore-certificate-errors。 稳定性和安全性将受损。
这是我的量angular器conf.js:
exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', capabilities: { 'browserName': 'chrome' }, ...
另外,我正在使用最新的可用Chromedriver和Selenium独立服务器(2.41.0)的Mac。 现在,我没有在任何地方设置这个标志,我不记得它总是显示,所以我不知道是什么造成了这个问题。
任何想法如何解决这个问题?
如果您使用量angular器 ,这可能是您正在寻找的configuration:
capabilities : { browserName : 'chrome', 'chromeOptions': { args: ['--test-type'] } },
标记--ignore-certificate-errors
已经添加到Chrome 35以来的“坏标志”列表中,因为它降低了浏览器的安全性。 国旗仍然工作不pipe。
如果您想禁用“不支持的标志”提示,请将--test-type
添加到您正在使用的命令行标志中。 这不应该以任何其他明显的方式影响浏览器,但它用于内部testing,所以使用它需要您自担风险。
有关添加命令行标志的更多信息,请参阅Chromedriverfunction文档 。
System.setProperty("webdriver.chrome.driver","<<your chrome path>>"); // To remove message "You are using an unsupported command-line flag: --ignore-certificate-errors. // Stability and security will suffer." // Add an argument 'test-type' DesiredCapabilities capabilities = DesiredCapabilities.chrome(); ChromeOptions options = new ChromeOptions(); options.addArguments("test-type"); capabilities.setCapability("chrome.binary","<<your chrome path>>"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); driver = new ChromeDriver(capabilities);
**这工作对我来说这里是代码**
我认为这是一个Chromedriver问题,我提出了一个问题反对Chromedriver https://code.google.com/p/chromedriver/issues/detail?id=799
同时,您可以尝试将Chrome降级到v34。
当我尝试在Angular教程的第3步中运行“npm run protractor”时,我也遇到了这个错误: https://docs.angularjs.org/tutorial/step_03
我在MacBook Pro上运行Chrome版本35.0.1916.153。
@谢菲尔德 – 谢谢,你的解决scheme为我工作。
(在教程第三步中也可能不是很明显,但是和以前的步骤一样,你仍然需要在你下载教程的目录下打开一个新的terminal窗口,然后发出“npm start”来启动你的web服务器。一个单独的terminal窗口你执行“npm运行量angular器”)。 随着量angular器configuration调整错误消失了。
适用于Ruby Bindings的本地webdriver和远程驱动程序scheme的代码。 这抑制了chrome35上的警告消息(请记住,您必须从http://chromedriver.storage.googleapis.com/index.html获取2.10 chromedriver.exe)
Localwebdriver:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type" ]}) @browser = Selenium::WebDriver.for :chrome,desired_capabilities: caps
RemoteWebDriver(使用GRID):请注意,下面代码中的逗号分隔的ips是允许网格中心接收selenese命令的ips。 这个安全层已经从chrome35和chromedriver 2.10开始实现
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type","whitelisted-ips=comma-separated-ips"]}) @browser = Selenium::WebDriver.for :remote, :url => GRID_HUB_URL,:desired_capabilities => caps
#!/usr/bin/env node var webdriver = require('selenium-webdriver'); var driver = new webdriver.Builder().withCapabilities({ browserName : 'chrome', 'chromeOptions': { args: ['test-type'] } }).build();
非代码解决scheme将是这样的:
- 去铬图标
- 右键单击并转到属性
- 在目标部分添加:–
--test-type
Selenium使用C#.Net(Selenium + C#.Net)
public static IWebDriver Instance = null; ChromeOptions opt = new ChromeOptions(); opt.AddArguments("--test-type");<br><br> Instance = new ChromeDriver(@"Path To directory containing chromedriver.exe" , opt ) ;
它适用于谷歌浏览器版本47.0.2526.106米。
我正在使用Java,所以我不知道这是否适用于您,但可能有帮助。
在我的情况下,添加.addArguments("test-type");
确实隐藏了这个警告。 但是,这使得执行速度非常缓慢。
所以我用下面的代替这条线,它工作正常!
options.addArguments("excludeSwitches", "ignore-certificate-errors");