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 证书,请尝试以下操作:
- 从此处下载并提取 Chrome 策略模板:http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip
- 启动本地组策略编辑器:开始 > 运行 > gpedit.msc > 确定
- Right-click 在计算机策略 > 计算机配置 > 管理模板上选择 Add/Remove 模板…
- 单击添加...,选择 policy_templates\windows\adm\en-US\chrome.adm(从已经下载和提取的策略模板中)并单击打开(注意:如果您的 Windows 语言不同于 en-US 选择来自相应语言文件夹的 chrome.adm)
- 导航到本地计算机策略 > 计算机配置 > 管理模板 > 经典管理模板 (ADM) > Google > Google Chrome > 内容设置
- Double-click 自动 select 这些站点的客户端证书
- 点击启用
- 在“选项”窗格中单击“显示...”
- 连续添加以下行:
{"pattern":"https://[*.]example.com","filter":{"ISSUER":{"CN":"example.com"}}}
- 点击确定
- Re-launch Chrome
- 完成。不再烦人 pop-ups!"
原始来源:https://gist.github.com/IngussNeilands/3bbbb7d78954c85e2e988cf3bfec7caa
我正在尝试使一项每天必须完成大约 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 证书,请尝试以下操作:
- 从此处下载并提取 Chrome 策略模板:http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip
- 启动本地组策略编辑器:开始 > 运行 > gpedit.msc > 确定
- Right-click 在计算机策略 > 计算机配置 > 管理模板上选择 Add/Remove 模板…
- 单击添加...,选择 policy_templates\windows\adm\en-US\chrome.adm(从已经下载和提取的策略模板中)并单击打开(注意:如果您的 Windows 语言不同于 en-US 选择来自相应语言文件夹的 chrome.adm)
- 导航到本地计算机策略 > 计算机配置 > 管理模板 > 经典管理模板 (ADM) > Google > Google Chrome > 内容设置
- Double-click 自动 select 这些站点的客户端证书
- 点击启用
- 在“选项”窗格中单击“显示...”
- 连续添加以下行:
{"pattern":"https://[*.]example.com","filter":{"ISSUER":{"CN":"example.com"}}}
- 点击确定
- Re-launch Chrome
- 完成。不再烦人 pop-ups!"
原始来源:https://gist.github.com/IngussNeilands/3bbbb7d78954c85e2e988cf3bfec7caa