2011-08-16 27 views
19

Tôi đang cố gắng khởi tạo InternetExplorerDriver trong C# và mỗi lần tôi nhận được thông báo lỗi sau :Khi sử dụng Selenium Webdriver, tôi nhận được lỗi sau bằng cách sử dụng InternetExplorerDriver - "Lỗi không mong muốn khi khởi chạy Internet Explorer ...."

System.InvalidOperationException: Lỗi không mong muốn khi khởi chạy Internet Explorer. Chế độ được bảo vệ phải được đặt thành cùng một giá trị (đã bật hoặc tắt) cho tất cả các vùng. (NoSuchDriver)

Bây giờ tôi không chắc chắn làm thế nào để sắp xếp này ra, nhưng dòng mã kích hoạt lỗi trong câu hỏi là:

IWebDriver driver = new InternetExplorerDriver(); 

Các tài liệu cho InternetExplorerDriver gợi ý rằng tôi có thể vượt qua trong đối tượng ICapabilities trong một hàm tạo quá tải, nhưng chỉ có các thuộc tính BrowserName, IsJavaScriptEnabled, PlatformVersion. Không ai trong số này dường như cho rằng họ có thể giải quyết vấn đề.

Có điều gì tôi cần thực hiện trong quá trình triển khai để sắp xếp điều này không? Hoặc tôi có phải sửa đổi một số cài đặt trong chính IE9 không?

Trả lời

16

Internet Explorer xác định bốn vùng, mỗi vùng có mức bảo mật khác nhau và khả năng bật hoặc tắt Chế độ được bảo vệ. Thông báo lỗi đang cố gắng cho bạn biết rằng Chế độ được bảo vệ phải được tắt hoặc bật cho tất cả các khu vực do giới hạn trong số InternetExplorerDriver của Selenium.

Để biết thêm chi tiết, hãy xem defect report in Selenium's issue trackerscreenshot of Internet Explorer security options.

+0

Liên kết thứ hai (tới ảnh chụp màn hình) bị hỏng. – Anthony

+0

@Anthony Cảm ơn, đã khắc phục. –

+5

Nope vẫn bị hỏng cho tôi .. Tôi chưa đăng nhập vào google (nếu tôi cần đăng nhập để xem nó, nó không thực sự trên web) – Anthony

24

Để tham khảo, nếu mong muốn của bạn để ghi đè lên các tùy chọn bảo mật ở đây là mã C#:

using NUnit.Framework; 
using OpenQA.Selenium; 
using OpenQA.Selenium.IE; 

namespace SeleniumTests 
{ 
    [TestFixture] 
    public class Test 
    { 
     private IWebDriver driver; 

     [SetUp] 
     public void Setup() 
     { 
      var options = new InternetExplorerOptions(); 
      options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
      driver = new InternetExplorerDriver(options); 
     } 
    } 
} 

Cập nhật:
câu trả lời trước của tôi đã sử dụng một phiên bản cũ của Selenium 2.0, bây giờ tôi đã cập nhật mã để làm việc với Selenium DotNet-2.21.0 và bao gồm các không gian tên chính xác.

+0

Mã này đã lỗi thời - nó cung cấp 2 cảnh báo biên dịch và không thành công chạy. – Anthony

+0

bạn đang sử dụng phiên bản Selenium nào? bạn đã gặp lỗi gì? –

+0

Nó không có một tuyên bố cho người lái xe vì nó đã được xác định trong mã ban đầu của OP. Tôi sẽ tra cứu codebase của tôi, nơi tôi lấy nó và kiểm tra lại. –

7

này nên giải quyết vấn đề:

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
IWebDriver driver = new InternetExplorerDriver(options); 
1

tôi thấy sau đây làm việc cho tôi (không ai trong số các câu trả lời ở trên làm việc)

DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); 
desiredCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true); 
driver = new InternetExplorerDriver(desiredCapabilities); 

tôi thấy rằng nó làm việc, nhưng tôi cũng nhận được một "(Unexpected Alert Open)" khi tôi cố gắng chạy thử nghiệm, trong đó tất cả mọi thứ, hóa ra tôi phải vô hiệu hóa thanh công cụ dành cho nhà phát triển IE.

0

Tôi gặp sự cố tương tự trên máy chủ được tạo và tôi không có cách nào thay đổi chế độ được bảo vệ. Nó đã bị vô hiệu hóa bởi người quản trị hệ thống. Ngay cả khi tôi đăng nhập bằng tài khoản quản trị, tôi vẫn không thể thay đổi chế độ được bảo vệ. Tuy nhiên, tôi đã có thể chạy selen mà không có vấn đề gì.

1

Tham khảo link: - https://intensetesting.wordpress.com/2014/09/16/error-80070012-unexpected-error-launching-spoon-based-internet-explorer/

Nếu bạn nâng cấp hoặc làm suy giảm các trình duyệt IE có nguồn gốc mà đã được cài đặt trong khi cài đặt hệ điều hành, nó sẽ không cho phép mở các trình duyệt muỗng. Mỗi khi chúng ta cần tạo trình duyệt IE mặc định thì nó sẽ hoạt động. Giả sử khi bạn cài đặt hệ điều hành, phiên bản IE mặc định là IE8 và bạn đã nâng cấp lên IE9 cho một số mục đích. Trong trường hợp này, nó sẽ không cho phép điều hướng bất kỳ ứng dụng nào trong trình duyệt Spoon (chỉ trình duyệt sẽ mở ra) và nó sẽ chỉ đơn giản là ném thông báo lỗi như “Lỗi phát hành lỗi không mong muốn trên Internet explorer IELaunchURL trả về 80070012”.

3

Câu trả lời của Aleh giải quyết vấn đề cho tôi, nhưng tôi thấy tôi cũng cần phải chỉ định đường dẫn tệp cho vị trí của IEDriverServer. Chỉ cần đăng bài trong trường hợp bất cứ ai khác chạy vào một vấn đề tương tự.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using OpenQA.Selenium; 
using OpenQA.Selenium.IE; 
using OpenQA.Selenium.Support.UI; 

namespace SeleniumTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      InternetExplorerOptions options = new InternetExplorerOptions(); 
      options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 

      IWebDriver driver = new InternetExplorerDriver("C:\\Selenium", options); 

      driver.Navigate().GoToUrl("http://www.stackoverflow.com"); 
     } 
    } 
} 
Các vấn đề liên quan