2015-05-15 18 views
5

Tôi đang nghiên cứu và phát triển trên một số trang web bên thứ ba không xác định để lấy nội dung trang bằng selenium.Làm thế nào để kiểm tra với Selenium WebDriver nếu một trang web đang sử dụng Ajax?

Làm cách nào để biết trang web dựa trên Ajax hay không dựa trên Ajax. Tôi không biết bất kỳ dữ liệu nào bên trong trang web không xác định để kiểm tra mặc dù sử dụng id hoặc tên thẻ, vì vậy làm thế nào tôi nên kiểm tra xem nó có dựa trên Ajax hay không.

+0

vui lòng đọc http://stackoverflow.com/help/how-to-ask và cung cấp thêm thông tin về những gì bạn đã thử và những gì không hoạt động – Dude

+2

Thực ra, đây là một vấn đề thú vị. – alecxe

+1

Bạn có ý nghĩa gì với "Dựa trên Ajax", Nếu tồn tại một số cuộc gọi ajax hoặc nếu đó là một ứng dụng Trang đơn giản? ví dụ (Angular JS) Vấn đề là có rất nhiều cách tiếp cận bằng cách sử dụng ajax. đó là rào cản chính trong quan điểm của tôi. không phải là một mô hình .. –

Trả lời

1

Nếu tôi là bạn, tôi sẽ thiết lập proxy và định tuyến tất cả lưu lượng truy cập WebDriver thông qua điều đó. Trong proxy, cho mỗi yêu cầu tôi sẽ phân tích các tiêu đề yêu cầu và tìm kiếm tiêu đề

X-Requested-With = XMLHttpRequest 

Reference

Nếu bạn có, bạn có thể (với số tiền hợp lý của sự tự tin) nói, rằng bạn đã có Ajax gọi . Có thể có một số trường hợp góc mà bạn sẽ bỏ lỡ, nhưng điều này sẽ giúp bạn có được hầu hết trong số họ.

Dù sao, bạn cần phải xem xét rằng các cuộc gọi Ajax có thể không được thực hiện khi tải trang, nó có thể yêu cầu tương tác của người dùng để kích hoạt các cuộc gọi đó.

Bạn có thể cố gắng giải quyết nó bằng cách sử dụng phương pháp WebDrivers getPageSource() và áp dụng một số phương pháp để sản lượng tìm kiếm các mẫu như $.get($.post($.ajax( và tất cả những người khác mà bạn có thể đưa ra.

Bạn cũng có thể quan tâm this answer về cách thiết lập proxy.

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