2013-05-13 49 views
7

tôi gặp sự cố đặc biệt ở đây. Khi tôi mở chromeBrowser qua chromeDriver, các tiện ích mở rộng đã được cài đặt trước bị thiếu. Ngoài ra, tiện ích mở rộng ứng dụng sẽ bị xóa khỏi thư mục tiện ích mở rộng (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions).Tiện ích mở rộng được cài đặt trên trình duyệt chrome bị thiếu khi phiên bản trình duyệt Chrome được mở bằng Selenium chromDriver

Bây giờ khi tôi mở trình duyệt Chrome theo cách thủ công, tiện ích xuất hiện trên trình duyệt, cũng là thư mục ứng dụng trong thư mục tiện ích mở rộng (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions) không có w xuất hiện trở lại.

Dưới đây là phiên bản của trình duyệt chromedriver &. phiên bản chromedriver: 26.0.1383.0 chromebrowser: 26.0.1410.64

Vui lòng trợ giúp về điều này.

+0

Có ai cần thêm thông tin để trợ giúp về điều này không ... ?? – navger

Trả lời

0

ChromeOptions options = ChromeOptions mới(); tùy chọn.AddAdditionalCapability ("excludeSwitches", đối tượng mới [] {"disable-default-apps"});
IWebDriver drv = new ChromeDriver (tùy chọn);

có sẵn từ webdriver .net bindings 2.40 trở đi.

+0

Ngay cả với cú pháp được cập nhật - nó không hoạt động đối với tôi. 'options.AddExcludedArgument (" disable-default-apps ")' –

2

Nếu bạn muốn có tiện ích mở rộng trong khi thử nghiệm, bạn cần bắt đầu chrome với tiểu sử xác định tiện ích mở rộng này hoặc cung cấp tiện ích mở rộng làm thuộc tính mong muốn cho trình quản trị web. Thông thường, khi bạn khởi động chrome thông qua trình quản trị web, chrome sẽ bắt đầu với cấu hình mới mỗi lần.

vì vậy nếu bạn muốn tải một phần mở rộng trong chrome kiểm tra, thực hiện điều này:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("chrome.switches", 
    Arrays.asList("--load-extension=/path/to/extension/directory")); 
WebDriver driver = new ChromeDriver(capabilities); 

Thông tin thêm về vấn đề này có thể được tìm thấy here

+0

hi luksch .. !! tôi đã thử mở chromedriver bằng "--user-data = {profile path}" nhưng điều đó cũng không hoạt động. – navger

+0

những gì không hoạt động? có thông báo lỗi không? bạn đã xem ở đây: http://www.chromium.org/user-experience/user-data-directory – luksch

6

Bạn phải cài đặt mỗi lần gia hạn bạn muốn sử dụng . Trong API Selenium2 C#, có vẻ như đây là

var options = new ChromeOptions(); 
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx")); 
var driver = new ChromeDriver(options); 

và tiện ích sẽ nằm trong trình duyệt. Tham khảo cho java có thể được tìm thấy here. Xem this question để biết cách lấy tệp .crx cho tiện ích của bạn từ cửa hàng Chrome.

+0

Nó không cần phải là một tập tin CRX, tập tin zip cũng được chấp nhận. API được triển khai dưới dạng "Tạo hồ sơ người dùng mới, giải nén tiện ích mở rộng và tải tiện ích mở rộng đã giải nén". Tuy nhiên, vì câu trả lời này chính xác hơn câu trả lời khác. –

+0

@RobW tải CRX mang lại cho tôi thiếu tệp tệp kê khai. Ngoài ra làm thế nào để tôi nhận được gói zip của một phần mở rộng? – MonsterMMORPG

4

câu trả lời này có thể được tìm thấy tại đây https://sites.google.com/a/chromium.org/chromedriver/extensions. Tiện ích của Chrome có thể được đóng gói hoặc giải nén. Tiện ích mở rộng được đóng gói là một tệp duy nhất có đuôi .crx. Tiện ích mở rộng được giải nén là một thư mục chứa phần mở rộng, bao gồm tệp manifest.json.

Để đóng gói tiện ích mở rộng chưa được giải nén, hãy sử dụng nút Đóng gói trong chrome: // extensions hoặc sử dụng Chrome: "chrome.exe --pack-extension = C: \ path \ to \ unpacked \ extension --pack-extension- key = C: \ myext.pem ". Xem tài liệu tiện ích mở rộng cho các cách khác để thực hiện việc này thân thiện với tự động hơn. Để giải nén một phần mở rộng đóng gói, chỉ cần giải nén tập tin (bạn có thể cần phải đổi tên tập tin từ .crx thành .zip cho tiện ích zip của bạn để nhận ra nó). mở rộng Cài đặt qua ChromeDriver

Packed (file .crx)

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

Unpacked (thư mục)

ChromeOptions options = new ChromeOptions(); 
options.addArguments("load-extension=/path/to/extension"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 
Các vấn đề liên quan