2012-01-13 26 views
19

Tôi đang sử dụng mã ví dụ từ trang SeleniumHq - nhưng ở chế độ gỡ lỗi hiệu suất là khủng khiếp.Tại sao Selenium InternetExplorerDriver Webriver rất chậm trong chế độ gỡ lỗi (studio trực quan 2010 và IE9)

Trong chế độ phát hành, toàn bộ thử nghiệm mất khoảng 6 giây (bao gồm khởi chạy và đóng IE) Ở chế độ Gỡ lỗi, phải mất 65 giây?

Các mẫu mã chỉ là:

[Test] 
    public void testBrowser() 
    { 
     // Do something here 
     IWebDriver driver = new InternetExplorerDriver(); 
     //Notice navigation is slightly different than the Java version 
     //This is because 'get' is a keyword in C# 
     driver.Navigate().GoToUrl("http://www.google.com"); 
     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Cheese"); 
     System.Console.WriteLine("Page title is: " + driver.Title); 
     // TODO add wait 
     driver.Quit(); 

    } 

Tôi đã thử nó trong IE8 và có hiệu suất tương tự. Firefox là tốt - nhưng khách hàng của tôi sử dụng IE vì vậy tôi đang bị mắc kẹt với thử nghiệm chống lại nó. Ngoài ra - Tôi không có vấn đề tương tự nếu tôi sử dụng Selenium RC.

NB - Tôi đang sử dụng Net 4 và phiên bản mới nhất (2.16) của webDriver.dll (chạy trên một cửa sổ 64bit 7 hộp)

+0

Dường như nó có liên quan đến việc chạy nó ở chế độ x64? Khi tôi buộc nó để chạy trong chế độ gỡ lỗi x86 hiệu suất là tốt? –

+2

Câu hỏi tương tự nhưng chi tiết hơn từ nhóm Selenium tại: http://groups.google.com/group/selenium-users/browse_thread/thread/4543181e60251841/65eaeab241c7ff8a?lnk=raot&pli=1 –

+0

Tôi đang gặp vấn đề tương tự Phiên bản 32bit và 64bit của InternetExplorerDriver. Và tôi lưu ý rằng quá trình iexplorer.exe nhận được khoảng 30% đến 60% của CPU của tôi trong khi đang thực hiện các thử nghiệm, với tạm dừng dài giữa một số hoạt động. – Luciano

Trả lời

12

kiểm tra 'thích 32 bit' không được kiểm tra trong xây dựng của bạn tính chất. Nếu có và bạn đang sử dụng trình điều khiển IE 64 bit, nó sẽ chạy như một con ốc bị hen.

25

Đối với tôi, việc sửa chữa là để chuyển sang phiên bản 32 bit của InternetExplorerDriver.exe từ https://code.google.com/p/selenium/downloads/list

Dường như tên IEDriverServer ngày nay, nhưng hoạt động nếu bạn chỉ cần đổi tên nó để InternetExplorerDriver.exe.

+1

Điều này dường như không hoạt động cho tôi một năm sau đó, Win 7 x64 với IE 9 x32, cả hai phiên bản của IEDriverServer.exe sẽ dẫn đến hoạt động rất chậm. – MrDoom

+1

IEDriverServer ngay tại đây nếu bạn đang tìm kiếm http://www.seleniumhq.org/download/ – Zymotik

+0

Giải pháp này làm việc cho tôi như phiên bản selenium 2.52 (tháng 2 năm 2016) – Chris

2

Sử dụng C#, NUnit, C# webdriver client và IEDriverServer, ban đầu tôi gặp sự cố với đầu vào chậm (ví dụ, gửi khóa đến hộp nhập liệu sẽ mất khoảng 5 giây giữa các phím hoặc nhấp vào nút cùng loại chậm trễ).

Sau đó, sau khi đọc chủ đề này, tôi đã chuyển sang IEDriverServer 32 bit và dường như giải quyết được sự cố.

Nhưng hôm nay tôi đã được thử nghiệm với các InternetExplorerOptions đối tượng để thiết lập một số tùy chọn trên IE theo tài liệu này:

https://code.google.com/p/selenium/wiki/InternetExplorerDriver

mỗi tài liệu, tôi tạo ra giá trị registry HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcMở rộng với giá trị 0 để sử dụng ForceCreateProcessApi = true và BrowserCommandLineArguments = "-private".

Sau khi thực hiện việc này, tôi nhận thấy rằng sự cố đầu vào chậm đã trở lại. Tôi đã thực hiện một số thay đổi đối với mã của mình, nhưng sau khi đã tung tất cả chúng trở lại, vấn đề vẫn tồn tại. Tuy nhiên, khi tôi loại bỏ khóa đăng ký nói trên, đầu vào đã trở lại tốc độ đầy đủ (không bị trễ).

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