2014-05-23 16 views
10

Bản cập nhật Chrome mới của Google gây ra thông báo này trong trình duyệt "Bạn đang sử dụng cờ dòng lệnh không được hỗ trợ: --ignore-certificate-errors. Tính ổn định và bảo mật sẽ bị ảnh hưởng".Vượt qua trình điều khiển ChromeOptions và DesiredCapabilities?

Từ những gì tôi đọc trên báo cáo selen lỗi, giải pháp tạm thời là để bắt đầu webdriver với

options.AddArgument("test-type") 

tôi đã được đi qua DesiredCapabilities khi tạo tài xế. Làm cách nào để chuyển cả ChromeOptions và DesiredCapabilities cho người lái xe?

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito")); 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("test-type"); 

WebDriver driver = new ChromeDriver(capabilities); 

Trả lời

15

Tôi đã chiến đấu cùng một vấn đề và cuối cùng tôi đã giải quyết được vấn đề đó. Về cơ bản, bạn có thể thêm ChromeOptions vào DesiredCapabilities rồi tạo trình điều khiển với DesiredCapabilities. Một khi tôi đã thử nó, nó đã loại bỏ các biểu ngữ. Dù sao, đây là mã:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("test-type"); 
capabilities.setCapability("chrome.binary", "<Path to binary>"); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
webDriver = new ChromeDriver(capabilities); 
+0

Điều này không được chấp nhận trong WebDriver 3.6.0. – plaidshirt

+0

Có. Việc chuyển khả năng cho trình tạo ChromeDriver không được chấp nhận. –

2
  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", the_entered_chrome_path); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

     driver = new ChromeDriver(capabilities); 

Làm việc cho tôi quá! Xin cảm ơn các bạn!

0

FYI: Kỹ thuật này dường như không hoạt động với Chrome 41.0.2272.101m.

ChromeOptions chromeOptions = new ChromeOptions(); 
chromeOptions.AddExcludedArgument("ignore-certificate-errors"); 
capabilities = DesiredCapabilities.Chrome(); 
capabilities.SetCapability(ChromeOptions.Capability, chromeOptions); 

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180)) 

Tạo

09:39:24.110 WARN - Exception: unknown error: cannot parse capability: chromeOptions 
from unknown error: unrecognized chrome option: Arguments 
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64) 
(WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 1.52 seconds 
Build info: version: '2.43.0', revision: '597b76b', time: '2014-09-09 20:52:14' 
System info: host: 'T10-E8-GREGPE', ip: '10.123.160.70', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_40' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 

Điều này dường như làm việc:

ChromeOptions chromeOptions = new ChromeOptions(); 
chromeOptions.AddArgument("test-type"); 
capabilities = (DesiredCapabilities)chromeOptions.ToCapabilities(); 

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180)); 
0

Thêm câu trả lời của tôi để giúp người dùng vẫn đang tìm kiếm ChromeOptions và Capabilities với phiên bản mới nhất của Selenium.

Khả năng chuyển đến hàm tạo ChromeDriver không được chấp nhận từ v3.6.0. Source code Reference

ChromeDriver(Capabilities capabilities) 
Deprecated. 
Use ChromeDriver(ChromeOptions) instead. 

Thay vào đó bạn nên bắt đầu sử dụng một cái gì đó như dưới đây:

ChromeOptions options = new ChromeOptions(); 
options.setAcceptInsecureCerts(true); 
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT); 
WebDriver driver = new ChromeDriver(options) 

Bạn vẫn có thể có khả năng của bạn được xác định, nhưng chắc chắn rằng bạn nhập các khả năng với ChromeOptions như dưới đây:

DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability("something", true); 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("disable-infobars"); 
options.merge(capabilities); 

Bạn có thể kiểm tra bài viết trên Selenium ChromeOptions để biết thêm chi tiết về cách sử dụng trên ChromeOptions và Capabilities

Các vấn đề liên quan