【问题标题】:Python: Disable images in Selenium Google ChromeDriverPython:禁用 Selenium Google ChromeDriver 中的图像
【发布时间】:2015-01-21 15:01:20
【问题描述】:
【问题讨论】:
标签:
python
google-chrome
selenium
web-scraping
web-crawler
【解决方案2】:
Java:
有了这个 Chrome 和 Firefox 都不会加载图像。语法不同,但参数上的字符串是一样的。
chromeOptions = new ChromeOptions();
HashMap<String, Object> images = new HashMap<String, Object>();
images.put("images", 2);
HashMap<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values", images);
chromeOptions.setExperimentalOption("prefs", prefs);
driver=new ChromeDriver(chromeOptions);
firefoxOpt = new FirefoxOptions();
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("permissions.default.image", 2);
firefoxOpt.setProfile(profile);
【解决方案3】:
每个人都可能想到另一种方法来访问chrome://settings,然后使用 selenium 进行设置遇到超过 3 个阴影根元素与动态内容相结合显然是一种混淆并使其无法自动化的方法,虽然听起来至少在理论上可能这种方法看起来更像是死胡同,我将把这个答案留给示例代码,仅用于纯粹的学习目的,以宣传那些想去挑战的人。。由于 shadowroots 和动态变化,当您发现此时按钮不可点击时,不仅很难找到内容设置。
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()