首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用selenium webdriver chrome处理“选择数字证书”

使用selenium webdriver chrome处理“选择数字证书”
EN

Stack Overflow用户
提问于 2013-02-19 22:38:31
回答 3查看 9.6K关注 0票数 12

当我使用selenium webdriver打开一个页面时,我会看到一个chrome对话框"Choose certificate“。默认的证书是正确的,所以我只需要点击OK按钮。但我对此有疑问。我有python代码:

代码语言:javascript
运行
复制
drv = webdriver.Chrome()   
drv.get("https://example.com/login")

在那之后,我想做一些类似的事情:

代码语言:javascript
运行
复制
drv.switch_to_alert().accept()

代码语言:javascript
运行
复制
drv.switch_to_alert().send_keys(Keys.TAB)
drv.switch_to_alert().send_keys(Keys.SPACE)

问题是代码在行drv.get("https://example.com/login")上停止执行。Webdriver正在等待页面加载。在这一行之前,没有chrome对话框。

我该怎么处理呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-20 17:44:33

你必须使用像AutoIT这样的东西:

http://www.autoitscript.com/site/autoit/

你为什么这么问?这是一个OS对话框,Selenium不会而且可能永远也不会处理它,所以您必须求助于其他解决方案(例如,在C#中,您应该使用本机Win32应用编程接口方法来单击按钮)。

票数 4
EN

Stack Overflow用户

发布于 2015-05-20 08:22:07

证书由操作系统管理,而不是由浏览器管理。从浏览器的证书存储中删除除必要证书之外的所有证书,然后将浏览器配置为在只存在一个证书时自动选择证书。您还可以创建一个浏览器配置文件,并让您的程序启动此配置文件或避免通过HTTPS进行测试。

票数 2
EN

Stack Overflow用户

发布于 2017-08-31 01:24:04

在这里处理任何事情之前,请在下面添加,这样一旦您导航/触发证书弹出窗口,它就不会被冻结。记住稍后添加正确的等待时间。

代码语言:javascript
运行
复制
 getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS); 

在此之后,您可以尝试使用键盘或autoIt。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14960084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档