2015-01-21 17 views
24

Spędzam dużo czasu na wyszukiwanie. Pod koniec dnia połączyłem wiele odpowiedzi i to działa. Dzielę się swoją odpowiedzią i doceniam to, jeśli ktoś ją zmieni lub udostępni nam łatwiejszy sposób.Python: Wyłącz obrazy w Selenium Google ChromeDriver

1- Odpowiedź w Disable images in Selenium Google ChromeDriver działa w języku Java. Więc powinniśmy zrobić to samo w Pythonie:

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

2- Ale pobraniem „Kostka image_v1.1.crx” jest trochę trudne, ponieważ nie ma bezpośredni sposób to zrobić. W tym celu zamiast: https://chrome.google.com/webstore/detail/block-image/pehaalcefcjfccdpbckoablngfkfgfgj

możesz przejść do http://chrome-extension-downloader.com/ i wkleić tam URL rozszerzenia, aby móc pobrać plik rozszerzenia.

3- Następnie będziesz mógł użyć powyższego kodu ze ścieżką do pobranego pliku rozszerzenia.

Odpowiedz

0

Jest też inny sposób, który pochodzi prawdopodobnie na myśl każdemu dostęp do chrome://settings a następnie przejść przez ustawieniach z selenem zacząłem tę drogę tylko dla ciekawości dydaktycznej, ale potem uderzyłem w las elementów shadow-roots, gdy napotkasz więcej niż 3 elementy shadow cra w połączeniu z dynamiczną treścią jest wyraźnie sposobem na zaciemnienie i uniemożliwienie zautomatyzowania, cóż Wydaje się, że przynajmniej teoretycznie możliwe jest, że podejście to wygląda bardziej jak ślepy zaułek, zostawię tę odpowiedź za pomocą przykładowego kodu, tylko dla czysto uczących się celów, by ogłosić ludzi skusionych na podjęcie wyzwania.. Nie tylko trudno było znaleźć tylko ustawienia zawartości ze względu na shadowOots i dynamiczną zmianę, gdy nie można kliknąć przycisku w tym miejscu.

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() 
Powiązane problemy