使用selenium 做web自动化的时候,经常会遇到这样一种需求,是否可以在已经打开的浏览器基础上继续运行自动化脚本?
这样前面的验证码登录可以手工点过去,后面页面使用脚本继续执行,这样可以解决很大的一个痛点。

命令行启动浏览器

首先右键Chrome浏览器桌面图标,找到chrome.exe的安装路径

复制地址 C:\Program Files\Google\Chrome\Application 添加到环境变量Path下

打开cmd输入命令启动chrome浏览器

  • –remote-debugging-port 是指定运行端口,可以设置容易端口,只要没被占用就行
  • –user-data-dir 指定运行浏览器的运行数据,新建一个干净目录,不影响系统原来的数据
> chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenium_chrome"

执行后会启动chrome浏览器

selenium运行已打开浏览器

在已打开的浏览器上输入我的博客地址:https://www.cnblogs.com/yoyoketang/

新建py文件,可以接着浏览器上直接运行,不用重新启动浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(chrome_options=chrome_options)
# 接着运行
print(driver.current_url)
print(driver.title)
https://www.cnblogs.com/yoyoketang/
上海-悠悠 - 博客园

通过此方法就可以解决登录页面验证码的问题了,验证码手工操作,后面的页面继续用代码操作。

前言使用selenium 做web自动化的时候,经常会遇到这样一种需求,是否可以在已经打开的浏览器基础上继续运行自动化脚本?这样前面的验证码登录可以手工点过去,后面页面使用脚本继续执行,这样可以解决很大的一个痛点。命令行启动浏览器首先右键Chrome浏览器桌面图标,找到chrome.exe的安装路径复制地址C:\Program Files\Google\Chrome\Application 添加到环境变量Path下打开cmd输入命令启动chrome浏览器–remote-debugging 环境配置为安装了 selenium 模块的 Python3 ,以及浏览器对应的driver 如果没有安装 selenium ,可以在控制台执行下面的代码 pip3 install selenium 浏览器driver下载地址:https://selenium-python.readthedocs.io/installation.html#drivers 需要选择对应的浏览器的对应版本进行下载 下载完成之后放到Python安装目录即可 不足:只能给最新发布的一个群
有了这个bat后,不用再反复吊起浏览器从头开始测试步骤。 比如有公共的登录准备,就用这个bat吊起chrome后先手动完成一次登录,接下来在selenium脚本中可以接续你的手动页面进行接下去的操作,只需要在吊起selenium时进行如下配置: options.add_experimental_option('debuggerAddress', '127.0.0.1:9222')
在一个页面上点击一个链接之后,并不是在当前页面上打开,而是重新打开一个新页面;这种情况下如何跳转到新的页面上操作? 首先,需要了解的是每个窗口都有句柄的,可以理解为浏览器窗口的唯一标识符,根据这个标识符来确定新打开的窗口: 先获取当前窗口的句柄, String current_handle = driver.getWindowHandle(); 打开新窗口后获取所有窗口的句柄, Set all_h...
import shutil from selenium import webdriver from selenium.webdriver.support.ui import Select from seleni
在web自动化测试过程中,如果点击一个按钮,打开一个新的窗口,那么后续的新页面的点击操作,无响应 出现原因: 两个窗口之间,可能有相同的页面元素。比如输入框,在两个页面上的id可能是一样的 实验两个id一样的输入框,在两个不同的窗口,输入内容。可以发现,根据id输入的内容,sendkeys之后,会输入到原来的窗口中 所以,浏览器打开新窗口后,selenium仍然在原来的窗口工作 解决方...
下载驱动 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/,选择自己浏览器对应的版本下载 解压,把解压后的文件夹添加进环境变量path或者记下绝对路径 使用pip命令安装两个包: pip install msedge-selenium-tools selenium 右键桌面浏览器图标>属性,找到可执行文件的目标位置,我这里是C:\Users\lenovo\AppData\Local\Microsoft\Edge.
# 在搜索框中输入关键词 input_box = browser.find_element_by_id('kw') input_box.send_keys('Python Selenium') # 点击搜索按钮 search_button = browser.find_element_by_id('su') search_button.click() # 等待搜索结果加载完成 browser.implicitly_wait(10) # 获取搜索结果列表 results = browser.find_elements_by_css_selector('.result') # 输出搜索结果标题和链接 for result in results: title = result.find_element_by_tag_name('h3').text link = result.find_element_by_tag_name('a').get_attribute('href') print(title, link) # 关闭浏览器 browser.quit() 希望对你有帮助。 RuntimeError: Working outside of application context. This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for more information.
python+playwright 学习-19.监听dialog事件-优雅处理对话框 小小虫Py: layer弹出层能监听吗?我需要点击layer弹出层里面的确定button python+playwright 学习-19.监听dialog事件-优雅处理对话框 zhanyalian5014: 问题是绝大数企业使用elementui类似的el-dialog 对话框,而不是原生的,你就无法使用这种方式监控到对话框