2013-05-23 42 views
5

Trong java, bạn có thể cài đặt phiên bản IE cho trình duyệt Internet Explorer bằng cách truyền khả năng mong muốn. Điều đó không hoạt động trong C#.Selenium C#: Cách khởi động trình điều khiển Internet Explorer trong một phiên bản cụ thể (ví dụ IE8)

Tôi mong chờ nó giống như thế:

DesiredCapabilities ieCapabilities = null; 
ieCapabilities = DesiredCapabilities.InternetExplorer(); 
ieCapabilities.SetCapability(CapabilityType.Version, "8"); 

IWebDriver driver = new InternetExplorerDriver(ieCapabilities); 

Trong C# Tôi không thể vượt qua DesiredCapabilities vào InternetExplorerDriver() constructor.

+0

Vui lòng thêm ít nhất một câu _sounding_ như một câu hỏi. – stefan

+0

Câu hỏi nằm trong tiêu đề. Vui lòng đọc kỹ. – Different

+1

_title_ phải là mô tả sự cố của bạn và _body_ trong câu hỏi của bạn phải chứa câu hỏi. Nó đơn giản như vậy. – stefan

Trả lời

9

DesiredCapabilities được gói gọn thành lớp Options khác nhau cho trình điều khiển cụ thể.

Có một lớp InternetExplorerOptions, cho phép bạn chỉ định tùy chọn bổ sung cho ra mắt trình duyệt IE, và một trong những phương pháp trên đây là AddAdditionalCapability đó, sẽ cho phép bạn thêm bất kỳ khả năng bạn muốn yêu cầu. Điều này có nghĩa là các tùy chọn chứa các khả năng sau đó được chuyển xuống trình điều khiển .

Đối với câu hỏi cụ thể của bạn, không có điều gì là không thể. Đây cũng không phải là một hạn chế của Selenium hay IEDriverServer, mà chính là bản thân IE. Bạn không thể, nếu không có các lỗ hổng chính, có nhiều phiên bản IE trên cùng một máy. Hãy suy nghĩ về nó theo cách khác - bất cứ khi nào bạn nâng cấp IE, nó sẽ gỡ cài đặt phiên bản trước đó.

Nó sẽ khởi chạy trình duyệt IE bạn đã cài đặt hiện tại. Bất cứ điều gì khác là tinh khiết sai, và một lần nữa, nó sai bởi vì bạn chỉ đơn giản là không thể có nhiều hơn một phiên bản của IE trên một máy Windows cùng một lúc.

Cách duy nhất xung quanh việc này là có máy riêng hoặc máy ảo cho mỗi phiên bản hoặc đầu tư vào một khung kiểm tra đám mây tự động như SauceLabs.

chỉnh sửa

Bạn cũng đã đề cập đến bạn muốn sử dụng chế độ tương thích của IE8 hoặc tự hỏi nếu điều đó sẽ làm việc khi sử dụng IEDriver.

Đó là điều gì đó hoàn toàn khác biệt (chơi chữ có chủ ý) một lần nữa.

Công cụ tương thích trong IE là không, đại diện thực sự của công cụ trình duyệt đó. Vì vậy, bạn phải nghĩ rằng bạn đang chạy, nói, IE9 với chế độ tương thích IE7 và do đó mong đợi IE7 đầy đủ - nó sẽ không được, ngay cả Microsoft nói điều này, và nó được sử dụng để thử nghiệm adhoc - nó không được dựa vào . Do đó, ngay cả khi bạn có thể làm điều này, nó sẽ không phải là một thử nghiệm đáng tin cậy ngay cả trong những điều khoản nhỏ nhất.

Vấn đề vẫn không phải là vấn đề về Selenium. IEDriver sẽ gọi bất kỳ trình duyệt IE nào được cài đặt và tại thời điểm đó, IE sẽ thiết lập một phiên mà Selenium có thể kết nối.

Điều đáng nói đến là tất cả tùy chọn tương thích mà bạn có thể sử dụng với IEDriver không ảnh hưởng đến IE, tạo phiên và cách Selen tương tác với phiên.

Tại thời điểm này, Selenium ném tay lên trong không khí, có rất ít nó có thể làm.

Với ý nghĩ này, Selenium không thể buộc IE sử dụng một chế độ trình duyệt nhất định. Không có API ở tất cả để làm điều này, và do đó, nó không phải là dễ dàng để làm.

Giải pháp thay thế ở đây là buộc IE phải xem ở chế độ xem tương thích ngay từ đầu. lựa chọn của bạn là rất hạn chế:

Force IE9 into browser compatibility view

+0

Xin chào Arran, cảm ơn bạn đã trả lời. Tôi thấy lớp tùy chọn và đã thử các cách sau: tùy chọn.AddAdditionalCapability (CapabilityType.Version, "8"); không cho tôi kết quả mong muốn, tức là chạy thử nghiệm selen trong một phiên bản IE được chỉ định (ví dụ, IE8) Về giới hạn của IE mà bạn đã đề cập. Nếu bạn khởi động trình thám hiểm Internet và nhấn F12, bạn có thể chọn trong số các chế độ trình duyệt khác nhau (IE7, IE8, chế độ xem tương thích ..). Tôi hy vọng rằng nó sẽ có thể chạy trình điều khiển thám hiểm internet bằng cách thiết lập "chế độ trình duyệt". – Different

+0

Xem chỉnh sửa của tôi, phiên bản ngắn, vẫn còn, không có nhiều bạn có thể làm - bạn sẽ cần phải buộc IE để xem nó ở một chế độ nhất định ở nơi đầu tiên, Selenium hoàn toàn không kiểm soát nó - một lần nữa, không phải hạn chế của Selenium. Tôi cũng sẽ đề cập đến một lần nữa, bạn sẽ chỉ có thể sử dụng bất cứ điều gì IE được cài đặt trên máy vào thời điểm đó. – Arran

+0

Cảm ơn bạn đã trả lời. Tôi thấy điểm của bạn. – Different

0

Để nhanh chóng phiên bản khác nhau, bạn có thể thiết lập các phiên bản sử dụng capability.setVersion với số phiên bản cần thiết. Cùng lúc đó, khi bắt đầu nút, bạn cần phải thêm các thông số sau trong dòng lệnh:

browser "browserName=internet explorer,maxInstances=5,platform=WINDOWS, version=8" 

Đối với việc hỗ trợ nhiều phiên bản tại nút tương tự, bạn có thể sử dụng "-browser" nhiều lần.