一次性搞定多任务!Python自动化复用浏览器技巧大揭秘

发布时间:2025-02-17 18:35

如何打开浏览器:在任务栏找到浏览器图标,双击打开。 #生活常识# #日常生活技巧# #基础电脑操作#

复用浏览器 简介

在 Web 自动化测试中,浏览器复用是指将已打开的浏览器实例用于多个测试用例。这可以显著提高测试效率和性能,并减少资源消耗。浏览器复用通常与浏览器驱动程序(如 Selenium WebDriver)一起使用,以便更好地管理浏览器窗口和标签页。常见的浏览器复用场景如下:

多个测试用例复用同一个浏览器实例:在自动化测试中,你可以创建一个浏览器实例,然后在多个测试用例之间共享它,而不必为每个测试用例启动和关闭浏览器。这可以加速测试执行并减少资源消耗。

多个标签页或窗口:浏览器复用还可以用于在同一浏览器实例中打开多个标签页或窗口,并在它们之间切换。这在某些测试场景下非常有用,例如在一个标签页中执行登录,然后在另一个标签页中执行其他操作。

复用浏览器应用场景

在运行 Selenium 自动化时,通常要求在成功扫码登陆后才能执行后续操作。为了提高效率,可以在脚本运行之前先进行扫码登录,并在运行脚本时复用已经打开的浏览器窗口。

当调试了某个步骤很多的测试用例,前面的 N-1 步骤已经成功执行,只需调试第 N 步。为了避免重新运行整个脚本造成耗时过多,这时我们可以直接复用浏览器只操作第 N 步。

复用浏览器的特点在于, webdriver 在启动时不会创建新的浏览器窗口,而是重用已打开的浏览器的当前页面,使得可以对元素进行进一步的操作。这种方式可以显著提高测试脚本的执行效率。

浏览器复用的优点

节省时间:启动和关闭浏览器通常需要一定的时间。通过复用浏览器,可以减少这些开销,从而更快地执行测试用例。

资源优化:每个浏览器实例都需要占用计算机资源,包括内存。通过复用浏览器,可以降低资源消耗。

更高效的内存管理:浏览器复用有助于更有效地管理浏览器的内存,因为每次启动浏览器时,它会加载并初始化一个新的浏览器进程。

使用和未使用复用浏览器流程如图所示:

复用已有浏览器-配置步骤

需要退出当前所有的谷歌浏览器(特别注意)。

输入启动命令,通过命令启动谷歌浏览器

找到 chrome 的启动路径

配置环境变量

windows:chrome --remote-debugging-port=9222

mac:Google\ Chrome --remote-debugging-port=9222

验证是否启动成功

访问浏览器查看浏览器是否启动 http://localhost:9222/

windows 关闭谷歌浏览器进程

图片

windows 环境变量配置

1. 获取启动路径

图片

2. 配置环境变量

图片

3. 重启命令行

图片

4. 验证

访问 http://localhost:9222/

Mac 环境变量配置

获取启动路径(注意:使用 tab 键,不要手动输入)。

将启动路径配置到环境变量中。

# 举例,不要生搬硬套

exportPATH=$PATH:/Applications/Google\ Chrome.app/Contents/MacOS

复用已有浏览器-代码设置

Python 实现

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.by import By

option = Options()

option.debugger_address = "localhost:9222"

driver = webdriver.Chrome(options=option)

driver.implicitly_wait(10)

driver.get("https://work.weixin.qq.com/wework_admin/frame")

# 人工扫码

time.sleep(10)

# 点击通讯录

driver.find_element(By.XPATH,'//*[text()="通讯录"]').click()

Java 实现​​​​​​​

importorg.junit.jupiter.api.AfterAll;

importorg.junit.jupiter.api.BeforeAll;

importorg.junit.jupiter.api.Test;

importorg.openqa.selenium.By;

importorg.openqa.selenium.WebDriver;

importorg.openqa.selenium.WebElement;

importorg.openqa.selenium.chrome.ChromeDriver;

importorg.openqa.selenium.chrome.ChromeOptions;

publicclass web_useAgainTest{

staticWebDriverdriver;

@BeforeAll

staticvoidsetup(){

ChromeOptionschromeOptions=newChromeOptions();

chromeOptions.setExperimentalOption("debuggerAddress","localhost:9222");

driver=newChromeDriver(chromeOptions);

}

@AfterAll

staticvoidteardown(){

driver.quit();

}

@Test

voidremote2()throwsInterruptedException{

driver.get("https://work.weixin.qq.com/wework_admin/frame");

//人工扫码

Thread.sleep(30000);

WebElementelement=driver.findElement(By.xpath("//*[@class ='index_service_cnt_itemWrap']"));

element.click();

Thread.sleep(1000);

}

}

使用复用浏览器,只需要扫码登陆一次,只要浏览器窗口不关闭,就可以一直使用,从而避免每次打开都需要扫码。

调试代码

Python 实现​​​​​​​

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.by import By

option = Options()

option.debugger_address = "localhost:9222"

driver = webdriver.Chrome(options=option)

driver.implicitly_wait(10)

# driver.get("https://work.weixin.qq.com/wework_admin/frame")

# 人工扫码

# time.sleep(10)

# driver.find_element(By.XPATH,'//*[text()="通讯录"]').click()

# 点击添加成员

driver.find_elements(By.XPATH,'//*[text()="添加成员"]')[1].click()

Java 实现​​​​​​​

importorg.junit.jupiter.api.AfterAll;

importorg.junit.jupiter.api.BeforeAll;

importorg.junit.jupiter.api.Test;

importorg.openqa.selenium.By;

importorg.openqa.selenium.WebDriver;

importorg.openqa.selenium.WebElement;

importorg.openqa.selenium.chrome.ChromeDriver;

importorg.openqa.selenium.chrome.ChromeOptions;

staticWebDriverdriver;

@BeforeAll

staticvoidsetup(){

ChromeOptionschromeOptions=newChromeOptions();

chromeOptions.setExperimentalOption("debuggerAddress","localhost:9222");

}

@AfterAll

staticvoidteardown(){

driver.quit();

}

@Test

voidremote2()throwsInterruptedException{

driver=newChromeDriver(chromeOptions);

WebElementelement=driver.findElement(By.xpath("//*[text()='添加成员'][1]"));

element.click();

Thread.sleep(1000);

}

如果需要在通讯录页面继续进行点击添加成员的操作,可以将打开界面和点击通讯录的操作注释,编写要进行的操作。

总结

复用浏览器是指在启动 selenium 程序时,浏览器不另外打开一个新的页面,而是直接使用现有的浏览器页面,并进行操作。

  感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取

网址:一次性搞定多任务!Python自动化复用浏览器技巧大揭秘 https://www.yuejiaxmz.com/news/view/779443

相关内容

Python自动化任务
揭秘Python定时任务:轻松实现自动化执行,告别手动重复操作!
如何使用 Python 自动化日常任务Python教程
如何使用 Python 自动化日常任务
Python定时任务,三步实现自动化
firefox python 自动化 已解决(selenium操作火狐浏览器报错)TypeError:
浏览器自动化操作(Web Browser Automation)(一)
python 网页自动化操作
微软开源的浏览器自动化工具
windows 10 如何设定计划任务自动执行 python 脚本?

随便看看