2012-06-22 29 views
6

Khi tôi sử dụng Selenium RC, có một phương pháp setSpeed ​​là:Có phương pháp nào trong WebDriver với Java để kiểm soát tốc độ trình duyệt không?

selenium.setSpeed ​​("500");

Cách kiểm soát tốc độ trình duyệt trong Selenium WebDriver là gì?

+1

Bạn có biết [Ngừng ngầm] (http://seleniumhq.org/docs/04_webdriver_advanced.html)? Bạn cũng có thể sử dụng WebDriverBackedSelenium và setSpeet (không được khuyến nghị) –

Trả lời

3

Bạn có thể sử dụng Thread.Sleep(500) (hoặc tương đương) bằng bất kỳ ngôn ngữ nào bạn đang sử dụng để chạy webdriver. Điều này sẽ làm cho chuỗi tạm dừng cho một số chính xác mili giây.

Hoặc bạn có thể sử dụng rõ ràng hoặc chờ đợi ngầm được mô tả here.

  • Chờ đợi rõ ràng cho phép bạn xác định ExpectedCondition. Webdriver sẽ kiểm tra điều kiện sau mỗi 500 mili giây cho đến khi nó trả về true, (sau khi thực thi sẽ tiếp tục ngay lập tức).

  • Chờ đợi ngầm khiến trình quản trị web tiếp tục thử tìm cách xác định vị trí nào đó trong DOM. Việc thực hiện sẽ tiếp tục ngay sau khi tìm thấy phần tử.

Lưu ý rằng không chờ đợi cũng như không rõ ràng sẽ đảm bảo tạm dừng 500 mili giây.

11

Không còn cách nào để kiểm soát tốc độ của từng "bước" trong Selenium WebDriver. Tại một thời điểm, có một phương thức setSpeed() trên giao diện Options (trong các ràng buộc Java; các ràng buộc khác có cấu trúc tương tự trên các đối tượng được đặt tên thích hợp), nhưng nó không còn được dùng lâu nữa. Lý do đằng sau điều này là bạn không cần phải một số trước làm chậm mỗi bước của mã WebDriver của bạn. Nếu bạn cần phải chờ đợi một cái gì đó xảy ra trong ứng dụng bạn đang tự động hóa, bạn nên sử dụng một thói quen chờ đợi ngầm hoặc rõ ràng.

+0

Mã java cho sự chờ đợi ngầm và rõ ràng trong Selenium WebDriver là gì? –

+4

Tôi nghĩ rằng nhu cầu phổ biến nhất cho 'setSpeed' là trong _developing_ các thử nghiệm tự động. Tôi đang chạy vào một tình huống mà 2 bài kiểm tra vượt qua, nhưng nếu tôi chạy chúng như một bộ, thử nghiệm thứ 2 thất bại. Tôi đang cố gắng gỡ lỗi những gì đang xảy ra, nhưng màn hình di chuyển quá nhanh đến nỗi tôi không thể thấy điều gì đang xảy ra. – Snekse

+0

Đó là những điểm ngắt trong một IDE (cho các ngôn ngữ tĩnh) hoặc REPLs (cho các ngôn ngữ động) là dành cho. – JimEvans

4

Không có cách nào chuyển tiếp thẳng. Nhưng có một hack mà bạn có thể sử dụng, bạn có thể ghi đè lên phương pháp của webdriver và giới thiệu một giấc ngủ rõ ràng để làm chậm các bài kiểm tra của bạn ví dụ như. phương pháp findElement trọng số

public class _WebDriver extends FirefoxDriver { 

@Override 
public WebElement findElement(By by) { 
    try { 
     Thread.sleep(500); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return by.findElement((SearchContext) this); 
} 

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