Web 自动化:使用证书登录 Chrome Python

Web automation: login with certificate Chrome Python

我正在尝试使一项每天必须完成大约 50 到 100 次的任务自动化。我要实现的是打开对应的网站,使用证书登录,填写两个字段,点击提交。

我可以弄清楚如何打开网站并使用 xpath 查找元素用数据填写正确的字段。但是,我无法使用证书自动登录。通过证书登录是 Google Chrome 中的一个弹出窗口,我必须在其中单击“确定”或按回车按钮(我正在使用的机器只有 1 个证书,因此它会被自动选中)。问题是登录弹出窗口似乎不是 Chrome 的一部分,我找不到“确定”按钮的 xpath。

目前我有以下代码:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://example.com')

有谁知道我应该往哪个方向前进?

谢谢!

你可以只做一个 time.sleep(10) 然后发送一个 keyDown 吗?即等到您可以假设弹出窗口已经出现,然后向屏幕发送 Enter 键?

您可以通过每 5 秒发送 enter 直到您的屏幕找到出现的一些 xPath 来使其更具体

通过在特定网站上定义 select 的证书解决了这个问题。这解决了 pop-up 问题,并且每次都会 auto-login。来自 github:

“如果您正在使用 Google Chrome 和客户端 SSL 证书并且您厌倦了不断地 selecting 证书,请尝试以下操作:

  1. 从此处下载并提取 Chrome 策略模板:http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip
  2. 启动本地组策略编辑器:开始 > 运行 > gpedit.msc > 确定
  3. Right-click 在计算机策略 > 计算机配置 > 管理模板上选择 Add/Remove 模板…
  4. 单击添加...,选择 policy_templates\windows\adm\en-US\chrome.adm(从已经下载和提取的策略模板中)并单击打开(注意:如果您的 Windows 语言不同于 en-US 选择来自相应语言文件夹的 chrome.adm)
  5. 导航到本地计算机策略 > 计算机配置 > 管理模板 > 经典管理模板 (ADM) > Google > Google Chrome > 内容设置
  6. Double-click 自动 select 这些站点的客户端证书
  7. 点击启用
  8. 在“选项”窗格中单击“显示...”
  9. 连续添加以下行:

{"pattern":"https://[*.]example.com","filter":{"ISSUER":{"CN":"example.com"}}}

  1. 点击确定
  2. Re-launch Chrome
  3. 完成。不再烦人 pop-ups!"

原始来源:https://gist.github.com/IngussNeilands/3bbbb7d78954c85e2e988cf3bfec7caa