• 使用 selenium 处理网页时, 碰到了跳出证书的情况
  • 如下图 所见:
    在这里插入图片描述
  • 当使用 get 请求网页的时候, 由于网页一直处于跳出状态, 无法使用页面内容来进行操作, 只能卡死在这一步
  • 考虑到只需要在当前页面用鼠标点击或者键盘回车即可;
  • 但是 selenium 单独无法完成, 由于程序是从上往下运行, 所以考虑引入多线程的特性, 在 get 的同时, 使用多线程运行键盘操作
  • 我的尝试如下:
  • 使用到的包: selenium, pynput, threading, time
  • from selenium import webdriver
    from pynput.keyboard import Key, Controller
    import threading
    import time
    url =
    1、Win + R打开运行,输入regedit打开注册表编辑器 2、找到这个目录(没有的话依据此目录手动创建项): HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleChromeAutoSelectCertificateForUrls 3、在AutoSelectCertificateForUrls中,右键 选择 新建 - 字符串值 4、名称为1,数据为{“pattern”:“*”,“filter”:{}} 5、打开Chrome 浏览器 ,URL输 今天下午 处理 了一个ui自动化工程师提交给 我们测试技术委员会的 关于 selenium +pytthon 的疑难杂症。 经过一番思考后成功解决,且方法极为简单可靠,具体代码在最后。 先看下这个疑难问题: 访问一个内部平台登陆页面, 然后弹出 证书 弹窗: 必须 点击 确定 按钮。否则无法继续加载登陆页面 手动 点击 一次之后,关 浏览器 下次打开仍然会弹出。 需求是想每次代码能自动 点击 确定 关闭弹窗,然后继续执行 解决该问题的思路: 由于该弹框是由 浏览器 进程控制的,如果使用一个线程是无法解决该问题的。解决该问题 需要 启用一个新的线程,该线程用于 点击 确认按钮。由于该弹窗是 浏览器 本身弹窗,应用程序本身是无法控制该弹窗,因此 需要 使用一些其他方法,类似于按键精灵东西,来 点击 确认。 实现 点击 确认方法 方法一:使用VBS+ Python 第一步,准备循环 点击 Enter按钮的vbs脚本enter.vbs,脚本内容如下: Set WshShell=WScript.CreateObjec 1.问题: 使用 selenium 调用chrome 浏览器 访问https页面时,如果有多个 证书 会弹出 选择 框, 需要 手动 选择 ,打断了自动化流程,怎么让这个 证书 自动被 选择 呢? 2.解决方案: 1>第一种方案是使用pywin32库实现: import win32api import win32con def press_enter(): win32api.keybd_event(0x0D,0,0,0) win32api.keybd_event(0x11,0,win32con.KEYE enter.vbs脚本内容为: Set WshShell = WScript.CreateObject("WScript.Shell")'提供对本地 Windows 外壳程序的访问... python 使用此方法可以使用 对于 证书 的信任问题低版本的 selenium 无法实现,因为options的capability选项在 selenium 3.x版本才引入,高版本对于48以下的火狐不兼容, 需要 自己在环境变量中配置火狐 浏览器 的地址 time.sleep(3) #可以多等待几秒 pyautogui.press("enter") #按下键盘回车键 t = threading.Thread(target=press_enter) t.setDaemon(True) #守护线程 t.start() #启动 dr = driver.get(url) #drver访问网址登陆页面 time.sle Selenium 是支持 web 浏览器 自动化的一系列工具和库的综合项目。 Selenium 有很多功能, 但其核心是 web 浏览器 自动化的一个工具集, 它使用最好的技术来远程控制 浏览器 实例, 并模拟用户与 浏览器 的交互。它允许用户模拟终端用户执行的常见活动;将文本输入到字段中, 选择 下拉值和复选框,并单击文档中的链接。它还提供许多其他控件,比如鼠标移动、任意 JavaScript 执行等等。 由于公司 需要 ,被测网站有 证书 加密,由于在 selenium 启动firefox的时候,它会重新建一个profile作为启动的profile,所以无论你怎么把站点设为可信任站点,在 selenium 启动的firefox中都是无效的。网上各种找方法,无疑都是这种思路: 【手动建立一个新的profile,将他放入一个目录中,在启动 selenium server的时候,加入参数 -firefoxP... 在使用 selenium 做测试的时候,如果使用不同的 浏览器 模式,比如说*pifirefox 就会遇到,安全 证书 认证失败的错误,必须要手动去 处理 。不然测试就进行不下去。如下图所示。 我们要做的就是设置好firefox让它自动去 处理 。 1.       保存 证书 。我们 点击 View certificate 然后出现下面的界面。 然后 选择 Export保存在你想要的位置。