Tôi đã tìm cách thiết lập tùy chọn trình điều khiển cho trình điều khiển chrome bằng java trong hai ngày qua mà không có may mắn.Selenium 2 tùy chọn trình điều khiển chrome java tương đương với RubyBindings
Tuy nhiên, tôi đã tìm thấy giải pháp trong Ruby Ruby Bindings ruby và muốn biết liệu có một dòng tương đương java tôi có thể sử dụng cho việc này hay không.
Mã ruby như sau:
profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = "/path/to/dir"
driver = Selenium::WebDriver.for :chrome, :profile => profile
Trong khi tìm kiếm tôi thấy chrome mà không có một hồ sơ tôi có thể sử dụng như lớp FirefoxProfile, vì vậy tôi bắt đầu bằng cách sử dụng lớp DesireCapabilities để thay thế. Sau khi điều tra sâu hơn vào vấn đề này, tôi thấy rằng tôi có thể thiết lập các "công tắc" và "prefs" VIA capabilities.setCapabilitiy và kết thúc với những điều sau đây:
Map<String, String> prefs = new Hashtable<String, String>();
prefs.put("download.prompt_for_download", "false");
prefs.put("download.default_directory", "/path/to/dir");
prefs.put("download.extensions_to_open", "pdf");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.prefs", prefs);
dr = new ChromeDriver(capabilities);
Tuy nhiên tôi đã không thể làm việc này, mặc định thư mục tải xuống chưa bao giờ được thay đổi thành thư mục được chỉ định khi đã bắt đầu. Tôi không chắc chắn nếu có vấn đề với cách tôi đang cố gắng thiết lập khả năng này hoặc nếu vấn đề nằm ở nơi khác.
Cuối cùng tôi cuối cùng sử dụng các giải pháp đề xuất ở đây:
http://dkage.wordpress.com/2012/03/10/mid-air-trick-make-selenium-download-files/
nhưng tôi muốn biết nếu nó có thể làm điều này sạch hơn, nhưng chỉ thiết lập các ưu đãi trực tiếp thay vì sử dụng giao diện người dùng
Bất kỳ trợ giúp nào được đánh giá cao, Cảm ơn!
Cập nhật:
Đáng ngạc nhiên là sau khi cập nhật Selenium 2 lên phiên bản 2.24.1 (và các cửa sổ chrome 22), các mã trên với Maps hoạt động như mong đợi, vấn đề duy nhất bây giờ là họ phản đối những việc sử dụng hàm tạo ChromeDriver (khả năng DesiredCapabilities) và thay vào đó, tôi khuyên bạn nên sử dụng lớp ChromeOptions mà tôi không thể làm việc cho kịch bản trên.
Dưới đây là các trang wiki giải thích việc sử dụng cả hai ChromeOptions và DesiredCapabilities: http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches
Cảm ơn đề nghị này, tôi không nhận thấy rằng các ràng buộc mở rộng như thế. Thật không may mặc dù làm như vậy vẫn không giúp đỡ (tôi đã loại trừ các "prompt_for_download" như chrome đã làm nó theo mặc định để tránh khả năng của một vấn đề có) – Zero4573