python – 如何在selenium中覆盖默认的chrome命令行开关集
发布时间:2020-12-20 11:26:54 所属栏目:Python 来源:网络整理
导读:默认情况下,将使用此命令行运行chrome: "C:Program Files (x86)GoogleChromeApplicationchrome.exe"--disable-hang-monitor--disable-prompt-on-repost--dom-automation--full-memory-crash-report--no-default-browser-check--no-first-run--disable-
默认情况下,将使用此命令行运行chrome:
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --disable-hang-monitor --disable-prompt-on-repost --dom-automation --full-memory-crash-report --no-default-browser-check --no-first-run --disable-background-networking --disable-sync --disable-translate --disable-web-resources --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --enable-logging --log-level=1 --ignore-certificate-errors --no-default-browser-check --test-type=ui --user-data-dir="C:UsersnikAppDataLocalTempscoped_dir1972_4232" --testing-channel=ChromeTestingInterface:1972.1 --noerrdialogs --metrics-recording-only --enable-logging --disable-zero-browsers-open-for-tests --allow-file-access --allow-file-access-from-files about:blank 我需要覆盖(删除)所有命令–disable- *,因为没有等效的命令–enable- *. 最后,我想用这个命令行运行浏览器: "C:Program Files (x86)GoogleChromeApplicationchrome.exe" --dom-automation --full-memory-crash-report --no-first-run --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --enable-logging --log-level=1 --ignore-certificate-errors --test-type=ui --user-data-dir="C:UsersnikAppDataLocalTempscoped_dir1972_4232" --testing-channel=ChromeTestingInterface:1972.1 --noerrdialogs --metrics-recording-only --enable-logging --allow-file-access --allow-file-access-from-files about:blank 例如,我尝试使用翻译信息栏运行浏览器. capabilities = DesiredCapabilities.CHROME.copy() capabilities['chrome.switches'] = ['--enable-translate'] 但这并没有帮助,infobar没有出现.在命令行中,有两个命令: – disable-translate和–enable-translate.这是因为必须删除命令–disable-default-apps 解决方法
你应该自己开始浏览,然后告诉selenium,你已经通过传递特殊的频道ID启动了它.像这样的东西:
from random import randrange channel_id = "%032x" % randrange(16**32) from subprocess import Popen # HERE YOU PASS ONLY THOSE PARAMETERS YOU WANT (i.e. without --disable-*) # BUT YOU MAY NEED --dom-automation FOR SOME ROUTINES chrome = Popen(" ".join([ PATH_TO_CHROME_EXE,"--no-first-run","--dom-automation",("--testing-channel="NamedTestingInterface:%s"" % channel_id),])) try: from selenium.webdriver.chrome.service import Service chromedriver_server = Service(PATH_TO_CHROMEDRIVER,0) chromedriver_server.start() from selenium.webdriver import Remote driver = Remote(chromedriver_server.service_url,{"chrome.channel": channel_id,"chrome.noWebsiteTestingDefaults": True}) driver.get(MY_WEBPAGE) # DO YOUR WORK finally: chromedriver_server.stop() driver.quit() chrome.kill() chrome.wait() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |