如何覆盖selenium中的chrome命令行开关的默认设置

默认情况下,chrome将使用以下命令行运行:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.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:\Users\nik\AppData\Local\Temp\scoped_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)\Google\Chrome\Application\chrome.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:\Users\nik\AppData\Local\Temp\scoped_dir1972_4232"

--testing-channel=ChromeTestingInterface:1972.1

--noerrdialogs

--metrics-recording-only

--enable-logging

--allow-file-access

--allow-file-access-from-files about:blank

例如,我尝试使用翻译信息栏运行浏览器。我找到了选择--enable-translate

capabilities = DesiredCapabilities.CHROME.copy()

capabilities['chrome.switches'] = ['--enable-translate']

但这没有帮助,信息栏不会出现。在命令行中,有两个命令:--disable-translate--enable-

translate。这是因为有必要删除该命令--disable-default-apps

回答:

您应该 ,然后告诉selenium,您已经通过 启动了它。像这样:

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()

以上是 如何覆盖selenium中的chrome命令行开关的默认设置 的全部内容, 来源链接: utcz.com/qa/406544.html

回到顶部