2015-07-05 13 views
5

Tôi đã đọc các câu hỏi tương tự, một câu hỏi được cho là câu trả lời, nhưng khi tôi thử nó, nó chỉ đưa ra một giải pháp một phần.Selenium: Làm thế nào để vô hiệu hóa tải hình ảnh với firefox và python?

tôi tham khảo các câu hỏi: Disable images in Selenium Python

Vấn đề của tôi là tôi đã cố gắng giải pháp đó và một số hình ảnh không xuất hiện nhưng hình ảnh mà đến từ:

<img href="www.xxx.png"> 

đang được nạp. Có cách nào để báo cho firefox/selenium biết không? Nếu không, là có một cách để loại bỏ nó từ các yếu tố dom mà tôi nhận được trở lại, qua

self._browser.get(url) 
content=self._browser.page_source 

ví dụ bằng cách thực hiện một số loại tìm thay thế trên cây dom?

Cấu hình trình duyệt là cùng một trình duyệt từ câu hỏi trước:

firefox_profile = webdriver.FirefoxProfile() 
    # Disable CSS 
    firefox_profile.set_preference('permissions.default.stylesheet', 2) 
    # Disable images 
    firefox_profile.set_preference('permissions.default.image', 2) 
    # Disable Flash 
    firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') 
    # Set the modified profile while creating the browser object 
    self._browser = webdriver.Firefox(firefox_profile=firefox_profile) 

--------------------------- ---------- CHỈNH SỬA -------------------------------------

Tôi tiếp tục đào và những gì tôi đã học là,
Nếu tôi kiểm tra tài liệu văn bản mà selenium/firefox combo đã làm tôi thấy rằng, nó không mang lại hình ảnh, và giữ sau đó là liên kết.

Nhưng khi tôi đã làm:

self._browser.save_screenshot("info.png") 

Tôi có một 24 lớn tập tin với tất cả các liên kết img nạp.
Có ai có thể giải thích cho tôi về vấn đề này không?
Cảm ơn

Trả lời

3

Bạn có thể vô hiệu hóa hình ảnh bằng cách sử dụng đoạn mã sau:

firefox_profile = webdriver.FirefoxProfile() 
firefox_profile.set_preference('permissions.default.image', 2) 
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') 

driver = webdriver.Firefox(firefox_profile=firefox_profile) 

nếu bạn cần để chặn một số url cụ thể ... hm ... Tôi nghĩ rằng bạn cần phải thêm chuỗi:

127.0.0.1 www.someSpecificUrl.com 

vào tệp máy chủ trước khi bắt đầu thử nghiệm và xóa nó sau khi kết thúc kiểm tra.

+0

Ứng dụng có hoạt động không? Tôi nghĩ rằng, nó cần False thay vì chuỗi "sai". Nó phải là boolean. Xin tư vấn. – mrtipale

+0

Tùy thuộc vào ngôn ngữ của bạn. Nhưng có thể cả hai cách sẽ hoạt động: khi bạn gửi nó như bool và khi bạn gửi nó như là chuỗi. Nhưng có, điều này phải làm việc. – Andrew

+0

Làm việc cho tôi. https://www.dropbox.com/s/o9wlmycti3yjg99/Screenshot%202018-01-26%2021.25.34.png?dl=0 –

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