基于selenium和pytest的参数化百度搜索内容并截图保存
时间: 2024-04-29 13:24:01 浏览: 8
以下是一个基于selenium和pytest的参数化百度搜索内容并截图保存的示例代码:
```python
import pytest
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
@pytest.fixture(scope="module")
def driver():
# 设置Chrome浏览器的路径
chrome_driver_path = "D:/chromedriver.exe"
# 创建Chrome浏览器的实例
driver = webdriver.Chrome(executable_path=chrome_driver_path)
# 设置浏览器窗口大小
driver.set_window_size(1920, 1080)
yield driver
# 关闭浏览器
driver.quit()
@pytest.mark.parametrize("search_content", ["pytest", "selenium", "parameterization"])
def test_baidu_search(driver, search_content):
# 打开百度网站
driver.get("https://www.baidu.com/")
# 定位搜索框并输入搜索内容
search_box = driver.find_element(By.ID, "kw")
search_box.clear()
search_box.send_keys(search_content)
# 点击搜索按钮
search_button = driver.find_element(By.ID, "su")
search_button.click()
# 等待搜索结果页面加载完成
driver.implicitly_wait(10)
# 截图并保存
screenshot_name = search_content + ".png"
screenshot_path = os.path.join(os.getcwd(), "screenshots", screenshot_name)
driver.save_screenshot(screenshot_path)
```
在这个示例中,我们首先定义了一个`driver`的fixture,用于创建和关闭Chrome浏览器实例。然后使用`@pytest.mark.parametrize`装饰器定义了一个参数化测试,其中参数是搜索内容。在测试函数中,首先打开百度网站,然后根据搜索内容输入搜索关键字,点击搜索按钮,等待搜索结果页面加载完成,然后进行截图并保存。最后运行测试时,pytest将自动根据参数化的测试数据执行多次测试,并生成对应的截图保存到`screenshots`目录中。