selenium----测试人论坛搜索功能实战作业总结

import time
import webbrowser

import pytest
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

"""
-------------------------------------------------------------
tittle: 测试人搜索功能

优先级:

前置条件: 进入测试人论坛搜索页面

测试步骤;
        1、输入搜索关键词;
        2、点击搜索按钮;
预期结果:
        1、搜索成功;
        2、搜索结果列表包含关键字;
--------------------------------------------------------------

作者:wang-min
创建时间:2024.05.13
"""


class TestCeShiRen:

    def setup_class(self):
        """
        前置条件: 打开浏览器,进入测试人论坛搜索页面
        """
        # 打开浏览器
        self.driver = webdriver.Chrome()

        # 设置3秒隐式等待
        self.driver.implicitly_wait(3)

        # 打开被测地址
        self.driver.get("https://ceshiren.com/search?expanded=true")

    @pytest.mark.parametrize("send_keys", ["Selenium", "Appium", "面试"])
    def test_search(self, send_keys):
        """
        1、输入搜索关键词;
        2、点击搜索按钮;
        :return: 预期结果/实际结果
        """

        # 定位到搜索输入框,并输入搜索内容
        self.driver.find_element(By.CSS_SELECTOR, "[placeholder = '搜索']").send_keys(send_keys)

        # 定位到搜索按钮,并点击
        self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
        time.sleep(3)
        self.driver.find_element(By.CSS_SELECTOR, "[placeholder = '搜索']").clear()

        # 获取包含搜索关键字列表中的第一个搜索结果,web_element对象,定位到该元素对象
        web_element = self.driver.find_element(By.CSS_SELECTOR, ".topic-title")
        # 获取元素对象的文本信息(text), 进行断言, 判断appium关键字是否在获取的实际结果文本之中
        assert send_keys.lower() in web_element.text.lower()

        print(web_element.text)

    def teardown_class(self):
        """
        后置条件: 销毁chromedriver进程, 并关闭浏览器
        :return:
        """
        self.driver.quit()