6

Tôi đang sử dụng Requests mô-đun để gửi yêu cầu GETPOST yêu cầu đến trang web và sau đó xử lý câu trả lời của họ. Nếu Response.text đáp ứng một tiêu chí nhất định, tôi muốn nó được mở trong trình duyệt. Để làm như vậy hiện tại tôi đang sử dụng gói selenium và gửi lại yêu cầu tới trang web thông qua trình quản trị web selenium. Tuy nhiên, tôi cảm thấy nó không hiệu quả như tôi đã thu được đáp ứng một lần, do đó, có cách nào để làm cho đối tượng này thu được trực tiếp Response vào trình duyệt được mở thông qua selen không?Hiển thị phản hồi HTTP (nội dung HTML) trong trình duyệt web selenium (trình duyệt)

EDIT Cách hack mà tôi có thể nghĩ là viết response.text vào một tệp tạm thời và mở trong trình duyệt. Xin vui lòng cho tôi biết nếu có một cách tốt hơn để làm điều đó hơn này?

+0

trả lời ngắn gọn Không. Câu trả lời dài, có những cách hacky như những gì bạn đang cố gắng nhưng tại sao lại bận tâm? Bạn đạt được gì bằng nỗ lực đó? – e4c5

+0

@ e4c5 như tôi đã nói, tôi chỉ muốn mở một phản hồi trang trong selen nếu đáp ứng một số điều kiện nhất định trong phản hồi của nó, nếu tôi chỉ mở tất cả các yêu cầu trong trình duyệt để ứng dụng của tôi chậm hơn do các phản hồi không cần thiết rằng trình duyệt sẽ hiển thị – bawejakunal

+1

Tại sao bạn mở trong trình duyệt? –

Trả lời

5

Trực tiếp làm cho một số HTML với Selenium, bạn có thể sử dụng chương trình dữ liệu với các phương pháp get:

from selenium import webdriver 
import requests 

content = requests.get("http://stackoverflow.com/").content 

driver = webdriver.Chrome() 
driver.get("data:text/html;charset=utf-8," + content) 

Hoặc bạn có thể viết trang với một mảnh kịch bản:

from selenium import webdriver 
import requests 

content = requests.get("http://stackoverflow.com/").content 

driver = webdriver.Chrome() 
driver.execute_script(""" 
    document.location = 'about:blank'; 
    document.open(); 
    document.write(arguments[0]); 
    document.close(); 
    """, content) 
Các vấn đề liên quan