2015-01-21 15 views
24

Tôi dành nhiều thời gian tìm kiếm về điều này. Vào cuối ngày, tôi kết hợp một số câu trả lời và nó hoạt động. Tôi chia sẻ câu trả lời của mình và tôi sẽ đánh giá cao nếu có ai chỉnh sửa hoặc cung cấp cho chúng tôi một cách dễ dàng hơn để thực hiện việc này.Python: Vô hiệu hóa hình ảnh trong Selenium Google ChromeDriver

1- Câu trả lời trong Disable images in Selenium Google ChromeDriver hoạt động trong Java. Vì vậy, chúng ta nên làm điều tương tự bằng Python:

opt = webdriver.ChromeOptions() 
opt.add_extension("Block-image_v1.1.crx") 
browser = webdriver.Chrome(chrome_options=opt) 

2- Nhưng tải "Block-image_v1.1.crx" là một chút khó khăn, bởi vì không có cách nào trực tiếp để làm điều đó. Với mục đích này, thay vì truy cập: https://chrome.google.com/webstore/detail/block-image/pehaalcefcjfccdpbckoablngfkfgfgj

bạn có thể truy cập http://chrome-extension-downloader.com/ và dán url tiện ích ở đó để có thể tải xuống tệp tiện ích.

3- Sau đó, bạn sẽ có thể sử dụng mã được đề cập ở trên với đường dẫn đến tệp tiện ích mà bạn đã tải xuống.

Trả lời

44

Cảm ơn. Đây là một cách khác để vô hiệu hóa hình ảnh,

chromeOptions = webdriver.ChromeOptions() 
prefs = {"profile.managed_default_content_settings.images":2} 
chromeOptions.add_experimental_option("prefs",prefs) 
driver = webdriver.Chrome(chrome_options=chromeOptions) 

tôi tìm thấy nó dưới đây:

http://nullege.com/codes/show/[email protected]@[email protected]@fbstalker1.py/56/selenium.webdriver.ChromeOptions.add_experimental_option

+0

Điều này hoạt động, cảm ơn. –

0

Có một cách khác mà đến có lẽ là để tâm trí để tất cả mọi người để truy cập chrome://settings và sau đó đi qua các thiết lập với selenium Tôi bắt đầu theo cách này chỉ vì sự tò mò của giáo khoa, nhưng sau đó tôi đã đánh vào một khu rừng của các yếu tố bóng tối khi bạn gặp phải hơn 3 yếu tố gốc bóng kết hợp với nội dung động rõ ràng là một cách để làm xáo trộn và làm cho nó không thể tự động hóa, thứ ough có thể âm thanh ít nhất về lý thuyết có thể cách tiếp cận này trông giống như một kết thúc chết, tôi sẽ để lại câu trả lời này với mã ví dụ, chỉ cho mục đích học tập hoàn toàn để quảng cáo những người bị cám dỗ để đi đến thử thách.. Không chỉ khó để tìm thấy các thiết lập nội dung do sự thay đổi bóng và thay đổi động khi bạn thấy nút không thể nhấp vào tại thời điểm này.

driver = webdriver.Chrome() 


def expand_shadow_element(element): 
    shadow_root = driver.execute_script('return arguments[0].shadowRoot', element) 
    return shadow_root 

driver.get("chrome://settings") 
root1 = driver.find_element_by_tag_name('settings-ui') 
shadow_root1 = expand_shadow_element(root1) 

root2 = shadow_root1.find_element_by_css_selector('[page-name="Settings"]') 
shadow_root2 = expand_shadow_element(root2) 

root3 = shadow_root2.find_element_by_id('search') 
shadow_root3 = expand_shadow_element(root3) 

search_button = shadow_root3.find_element_by_id("searchTerm") 
search_button.click() 

text_area = shadow_root3.find_element_by_id('searchInput') 
text_area.send_keys("content settings") 

root0 = shadow_root1.find_element_by_id('main') 
shadow_root0_s = expand_shadow_element(root0) 


root1_p = shadow_root0_s.find_element_by_css_selector('settings-basic-page') 
shadow_root1_p = expand_shadow_element(root1_p) 


root1_s = shadow_root1_p.find_element_by_css_selector('settings-privacy-page') 
shadow_root1_s = expand_shadow_element(root1_s) 

content_settings_div = shadow_root1_s.find_element_by_css_selector('#site-settings-subpage-trigger') 
content_settings = content_settings_div.find_element_by_css_selector("button") 
content_settings.click() 
Các vấn đề liên quan