test_dp_search_page.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import pytest
  2. from pathlib import Path
  3. from DrissionPage import ChromiumPage
  4. from mylib.drission_page import load_chrome_from_ini
  5. from mylib.search_manager import SearchManager
  6. # 使用 fixture 来初始化浏览器和 SearchManager
  7. @pytest.fixture(scope="module")
  8. def page():
  9. return load_chrome_from_ini()
  10. @pytest.fixture(scope="module")
  11. def search_manager(page):
  12. return SearchManager(page)
  13. # 参数化测试用例
  14. @pytest.mark.parametrize("file_name, expected_result", [
  15. ("只有一页.html", True),
  16. ("最后一页.html", True),
  17. ("查询不到内容 (2).html", True),
  18. ("查询不到内容.html", True),
  19. ("正常的搜索结果.html", False),
  20. ("流量异常.html", pytest.raises(ValueError)),
  21. ])
  22. def test_check_last_page(search_manager, file_name, expected_result):
  23. test_dir = Path(r'K:\code\upwork\zhang_crawl_bio\output\debug')
  24. file_path = test_dir / file_name
  25. print(f"Testing file: {file_name}") # 打印当前测试的文件名
  26. if isinstance(expected_result, type(pytest.raises(ValueError))):
  27. print(f"Expecting ValueError for file: {file_name}") # 打印预期会抛出异常的文件
  28. with expected_result:
  29. search_manager.page.get(file_path)
  30. search_manager.check_last_page()
  31. else:
  32. search_manager.page.get(file_path)
  33. result = search_manager.check_last_page()
  34. print(f"Result for {file_name}: {result}") # 打印实际的测试结果
  35. assert result == expected_result, f"Expected {expected_result}, but got {result} for {file_name}"