2011-10-10 21 views
7

Tôi đang sử dụng phiên bản mới nhất của Selenium và chromedriver để kiểm tra ứng dụng ZK.Làm cách nào để có DOM hiện tại với Selenium Java 2.8?

Trong khi thử nghiệm, tôi muốn kết xuất DOM (hoặc một phần của nó) để giúp tôi tìm các yếu tố tôi cần (và có thể giúp những người phải duy trì thử nghiệm).

Phương pháp WebDriver.getPageSource() có vẻ đầy hứa hẹn nhưng nó chỉ trả về HTML khi nó được máy chủ gửi chứ không phải kết quả sau khi chạy tất cả mã JavaScript.

Mã JavaScript đang chạy; Tôi có thể tìm thấy các phần tử theo ID mà tôi không thể thấy ở đầu ra của getPageSource(). Vì vậy, tôi đã thử WebElement.getText() nhưng đó chỉ là văn bản của các yếu tố, không phải là các yếu tố chính họ hoặc các thuộc tính của chúng.

Có thể nào có được DOM hay tôi có phải thực hiện phẫu thuật lỗ khóa ở đây không?

Trả lời

1

Tôi có cùng một câu hỏi thực sự nhưng cách duy nhất tôi đã tìm thấy để làm điều đó là ExecuteScript:

/// <summary> 
     /// Gets the parentElement/Node of a particular element 
     /// </summary> 
     /// <param name="driver"></param> 
     /// <param name="element"></param> 
     /// <returns></returns> 
     public static IWebElement GetElementParent(IWebDriver driver,IWebElement element) 
     { 
      return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element); 
     } 

tại sao By hỗ trợ doesnt By.DOM với một chức năng tôi không thực sự biết .. Tôi nghi ngờ của nó do sự cần thiết cho một webdriver cho nhiều trình duyệt vv

+0

Được rồi, kể từ khi trang chứa jQuery, tôi có thể có được những gì tôi muốn bằng cách chạy '$ (đối số [0]). Html()', tôi đoán : - / –

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