python自动化框架常用base.py基本操作工具类

from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport timefrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.
摘要由CSDN通过智能技术生成
from selenium  import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

def open_browser(browser):
    '''
    :param browser:
    :return:
    '''
    if browser=="chrome":
        driver = webdriver.Chrome()
    elif browser=="firefox":
        driver = webdriver.firefox()
    elif browser=="ie":
        driver = webdriver.ie()
    else:
        print("please input correct browser name")
        driver = None
    return driver


class Base:
    def __init__(self,driver):
        '''
        :param driver:
        '''
        self.driver = driver

    def open_url(self,url):
        self.driver.get(url)
        self.driver.maximize_window()
    def close(self):
        self.driver.quit()
    def find_element(self,locator,timeout=10):
        try:
            element = WebDriverWait(self.driver,timeout).until(EC.presence_of_element_located(locator))
        except:
            print(f"元素{locator}没找到")
            element = None
        return element
    def find_elements(self,locator,timeout=10):
        try:
            elements = WebDriverWait(self.driver,timeout).until(EC.presence_of_all_elements_located(locator))
        except Exception as e:
            print(f"没有找到{locator}元素组&#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的Python自动化测试框架,您可以根据需要进行修改。 1. 安装依赖库 使用pip安装以下依赖库: - pytest:测试框架 - selenium自动化测试工具 - pytest-html:生成测试报告 ``` pip install pytest selenium pytest-html ``` 2. 创建项目结构 在您的项目目录下,创建以下目录和文件: ``` myproject/ ├── tests/ │ ├── pages/ │ │ ├── __init__.py │ │ ├── base_page.py │ │ └── home_page.py │ ├── __init__.py │ └── test_home_page.py ├── conftest.py ├── pytest.ini └── requirements.txt ``` - tests/pages:存放页面对象和基础页面类。 - tests/test_home_page.py:存放测试用例。 - conftest.py:存放全局配置信息。 - pytest.ini:存放pytest的配置信息。 - requirements.txt:存放项目依赖库信息。 3. 编写页面对象类 在tests/pages目录下,创建base_page.py和home_page.py文件。base_page.py文件是基础页面类,home_page.py文件是首页页面对象类。以下是示例代码: base_page.py: ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By class BasePage: def __init__(self, driver): self.driver = driver def wait_for_element_visibility(self, locator, timeout=10): element = WebDriverWait(self.driver, timeout).until( EC.visibility_of_element_located((By.XPATH, locator)) ) return element def click_element(self, locator, timeout=10): self.wait_for_element_visibility(locator, timeout).click() def send_keys_to_element(self, locator, keys, timeout=10): self.wait_for_element_visibility(locator, timeout).send_keys(keys) ``` home_page.py: ```python from .base_page import BasePage class HomePage(BasePage): # 页面元素定位器 search_input_locator = "//input[@name='q']" search_button_locator = "//button[@type='submit']" def search(self, keyword): self.send_keys_to_element(self.search_input_locator, keyword) self.click_element(self.search_button_locator) ``` 4. 编写测试用例 在tests/test_home_page.py文件中,编写测试用例。以下是示例代码: ```python from pages.home_page import HomePage def test_search_in_google(driver): # 实例化首页页面对象 home_page = HomePage(driver) # 打开Google首页 home_page.driver.get("https://www.google.com") # 在搜索框中输入关键词并搜索 home_page.search("python") # 验证搜索结果页面是否包含关键词 assert "python" in home_page.driver.title ``` 5. 编写全局配置信息 在conftest.py文件中,编写全局配置信息。以下是示例代码: ```python from selenium import webdriver import pytest @pytest.fixture(scope="session") def driver(): # 实例化Chrome浏览器 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") driver = webdriver.Chrome(options=chrome_options) # 将浏览器窗口最大化 driver.maximize_window() # 设置隐式等待时间为10秒 driver.implicitly_wait(10) yield driver # 关闭浏览器 driver.quit() ``` 6. 编写pytest配置信息 在pytest.ini文件中,编写pytest配置信息。以下是示例代码: ```ini [pytest] addopts = --html=report.html ``` 7. 运行测试 运行以下命令运行测试: ``` pytest ``` 测试结果将生成在项目目录下的report.html文件中。 以上是一个基本的Python自动化测试框架,您可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值