训练营第二天作业0413

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

class TestCeShiRen():

def setup_class(self):
    # 实例化chromedriver
    self.driver = webdriver.Chrome()
    # 添加全局隐式等待
    self.driver.implicitly_wait(5)

def teardown_class(self):
    # 关闭driver
    self.driver.quit()

def setup(self):
    """
    1.打开浏览器并访问ceshiren.com
    2.设置浏览器大小
    """
    self.driver.get("https://ceshiren.com/")
    self.driver.set_window_size(1600, 900)

def teardown(self):
    """
    1.截图
    2.把截图塞入报告
    """
    self.driver.save_screenshot("image.png",)
    allure.attach.file("image.png", name='report1', attachment_type=allure.attachment_type.PNG)

def test_ceshiren_search(self):
    """
    1.点击头部搜索按钮
    2.点击高级搜索
    3.输入查询内容
    4.点击搜索
    5.获取实际结果并断言
    """

    self.driver.find_element(By.ID, "search-button").click()
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # time.sleep(3)
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("selenium")
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".topic-title").text
    print(res_text)

    assert "selenium" in res_text

def test_ceshiren_search_null(self):
    """
    1.点击头部搜索按钮
    2.点击高级搜索
    3.输入空的查询内容
    4.点击搜索
    5.获取实际结果并断言
    """

    self.driver.find_element(By.ID, "search-button").click()
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # time.sleep(3)
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("")
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".fps-invalid").text
    print(res_text)

    assert res_text == "您的搜索词过短。"

def test_ceshiren_search_special_char(self):
    """
    1.点击头部搜索按钮
    2.点击高级搜索
    3.输入特殊字符
    4.点击搜索
    5.获取实际结果并断言
    """

    self.driver.find_element(By.ID, "search-button").click()
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # time.sleep(3)
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("%$#@!")
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".loading-container").text
    print(res_text)

    assert "找不到结果。" in res_text

def test_ceshiren_search_nothingness(self):
    """
    1.点击头部搜索按钮
    2.点击高级搜索
    3.输入不存在的内容
    4.点击搜索
    5.获取实际结果并断言
    """

    self.driver.find_element(By.ID, "search-button").click()
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # time.sleep(3)
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("chatgpt替人写自动化")
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".loading-container").text
    print(res_text)

    assert "找不到结果。" in res_text

def test_ceshiren_search_overlength(self):
    """
    1.点击头部搜索按钮
    2.点击高级搜索
    3.输入超长的内容
    4.点击搜索
    5.获取实际结果并断言
    """

    self.driver.find_element(By.ID, "search-button").click()
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # time.sleep(3)
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十")
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".loading-container").text
    print(res_text)

    assert "找不到结果。" in res_text