python+selelnium打开和关闭浏览器

本文介绍了使用Python和Selenium库编写的自动化脚本,旨在练习打开和关闭浏览器的功能。脚本适用于PyCharm环境,浏览器驱动需放在Python安装目录下。

第一次写自动化脚本,用下面代码练练手。
此代码是在pycharm1下编写:

from selenium import webdriver

# 初始化一个火狐浏览器实例
driver = webdriver.Firefox()
# 最大化浏览器
driver.maximize_window()
# 通过get()方法,打开一个url站点
driver.get("https://www.baidu.com")
# 关闭并退出浏览器
driver.quit()

# 谷歌浏览器
driverChrome = webdriver.Chrome()
driverChrome.maximize_window()
driverChrome.get("https://weibo.com")
driverChrome.quit()
Playwright 是一种强大的现代化浏览器自动化工具,支持 Python 等多种语言。结合 pytest 框架可以轻松地构建高效的测试环境,并通过封装简化操作流程,提升代码复用性维护性。 以下是关于如何将 Playwright + Python + Pytest 进行封装并用于自动化的详细介绍: ### 封装浏览器的核心步骤 #### 1. 安装依赖库 首先需要安装 `playwright` 对应的浏览器驱动程序以及 `pytest` 测试框架: ```bash pip install playwright pytest playwright install # 自动下载对应浏览器版本 ``` #### 2. 创建基础类 - 浏览器管理器 为了方便管理初始化浏览器实例,我们可以创建一个通用的基础类来进行封装: ```python from playwright.sync_api import sync_playwright class BrowserManager: def __init__(self, browser_type='chromium'): self.browser = None self.context = None self.page = None self.browser_type = browser_type def start(self): p = sync_playwright().start() launch_method = getattr(p, self.browser_type) self.browser = launch_method.launch(headless=False) # 设置是否无头模式运行 self.context = self.browser.new_context() def new_page(self): if not self.context: raise Exception("Context is not initialized!") self.page = self.context.new_page() def stop(self): if self.browser: self.browser.close() ``` 该类包含启动、关闭浏览器等基本功能,并提供页面生成能力。 #### 3. 整合到 Pytest 中作为 fixture 使用 Pytest 的 fixture 特性非常适合做资源初始化清理工作,我们可以在 conftest.py 文件里配置好上述内容供其他模块直接调取。 ```python import pytest @pytest.fixture(scope="session") def browser_manager(): manager = BrowserManager() try: manager.start() yield manager finally: manager.stop() @pytest.fixture(autouse=True) def test_page(browser_manager): """每次测试都会加载一个新的 page""" browser_manager.new_page() return browser_manager.page ``` #### 4. 编写测试样例 下面展示了一个简单的登录验证例子: ```python def test_login_success(test_page): url = "https://example.com/login" username = 'your_username' password = 'your_password' test_page.goto(url) test_page.fill('input[name="username"]', username) test_page.fill('input[name="password"]', password) test_page.click('button[type="submit"]') assert test_page.url == "https://example.com/dashboard", f"Login failed! Current URL:{test_page.url}" ``` 这样我们就完成了从初始化浏览器到编写测试脚本的一整套过程了! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值