Chromedriver,Selenium-自动下载

我正在将Selenium 2.43.0与Python

2.7.5一起使用。在某一时刻,测试单击一个按钮,该按钮会将表单信息发送到服务器。如果请求成功,服务器将响应

1)成功的消息

2)合并了表格信息的PDF

我不在乎测试PDF,我的测试只是在寻找成功的消息。但是,PDF是服务器响应的包响应的一部分,我作为测试人员无法更改。

直到最近,使用Chromedriver从来都不是问题,因为Chrome会自动将pdf下载到其默认文件夹中。

但是,几天前,我的一个测试环境开始弹出一个单独的窗口,其中包含pdf的“打印”屏幕,这使我的测试脱轨了。

我不需要或不需要此对话框。如何使用chromedriver的选项以编程方式隐藏此对话框?(与中的FireFox

pdfjs.disable选项等效about:config)。

这是我当前试图绕过该对话框的尝试,该对话框不起作用(通过“不起作用”不会禁用或抑制打印pdf对话框窗口):

    dc = DesiredCapabilities.CHROME

dc['loggingPrefs'] = {'browser': 'ALL'}

chrome_profile = webdriver.ChromeOptions()

profile = {"download.default_directory": "C:\\SeleniumTests\\PDF",

"download.prompt_for_download": False,

"download.directory_upgrade": True}

chrome_profile.add_experimental_option("prefs", profile)

chrome_profile.add_argument("--disable-extensions")

chrome_profile.add_argument("--disable-print-preview")

self.driver = webdriver.Chrome(executable_path="C:\\SeleniumTests\\chromedriver.exe",

chrome_options=chrome_profile,

service_args=["--log-path=C:\\SeleniumTests\\chromedriver.log"],

desired_capabilities=dc)

两种测试环境中的所有组件版本均相同:

selenium2.43.0,Python 2.7.5,Chromedriver 2.12,Chrome(浏览器)38.0.02125.122

回答:

我必须深入研究此代码的源代码

-我找不到任何列出完整的Chrome用户偏好设置的文档。

关键是 "plugins.plugins_disabled": ["Chrome PDF Viewer"]}

完整代码:

dc = DesiredCapabilities.CHROME

dc['loggingPrefs'] = {'browser': 'ALL'}

chrome_profile = webdriver.ChromeOptions()

profile = {"download.default_directory": "C:\\SeleniumTests\\PDF",

"download.prompt_for_download": False,

"download.directory_upgrade": True,

"plugins.plugins_disabled": ["Chrome PDF Viewer"]}

chrome_profile.add_experimental_option("prefs", profile)

#Helpful command line switches

# http://peter.sh/experiments/chromium-command-line-switches/

chrome_profile.add_argument("--disable-extensions")

self.driver = webdriver.Chrome(executable_path="C:\\SeleniumTests\\chromedriver.exe",

chrome_options=chrome_profile,

service_args=["--log-path=C:\\SeleniumTests\\chromedriver.log"],

desired_capabilities=dc)

有趣的是,毯式命令chrome_profile.add_argument("--disable-

plugins")开关不能解决此问题。但无论如何,我还是更喜欢外科手术。

以上是 Chromedriver,Selenium-自动下载 的全部内容, 来源链接: utcz.com/qa/421705.html

回到顶部