这是遇到自动化面试题,因为电脑是新电脑,什么都没安装,麻烦做一下 截个图
下面是使用Python、Selenium和pytest/unittest对百度搜索功能进行自动化测试的代码:
import pytest
import unittest
from selenium import webdriver
import time
import os
class BaiduSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(10)
self.base_url = "https://www.baidu.com"
def tearDown(self):
self.driver.quit()
@pytest.mark.parametrize("search_input", ["python", "selenium", "pytest"])
def test_baidu_search(self, search_input):
driver = self.driver
driver.get(self.base_url)
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(search_input)
driver.find_element_by_id("su").click()
time.sleep(2)
# 截图并保存
screenshot_dir = os.path.join(os.getcwd(), "screenshots")
if not os.path.exists(screenshot_dir):
os.makedirs(screenshot_dir)
screenshot_path = os.path.join(screenshot_dir, f"{search_input}.png")
driver.save_screenshot(screenshot_path)
# 断言
assert search_input in driver.title
if __name__ == '__main__':
unittest.main(verbosity=2, testRunner=pytest.runner.pytest_runner)
1.
回答引用ChatGPT:
下面是一个示例代码,演示如何使用Python、Selenium和pytest/unittest进行百度搜索功能的自动化测试,包括参数化搜索条件、截图、关联和测试报告输出。
在此之前,请确保已经安装好了Python和Selenium,并下载了对应浏览器的webdriver驱动程序。假设我们要在Chrome浏览器上进行测试,那么可以从这里下载Chrome webdriver: https://sites.google.com/a/chromium.org/chromedriver/downloads
import pytest
import unittest
from selenium import webdriver
class BaiduSearchTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
def tearDown(self):
self.driver.quit()
@pytest.mark.parametrize("search_string", ["selenium", "pytest", "unittest"])
def test_baidu_search(self, search_string):
self.driver.get("https://www.baidu.com/")
self.driver.find_element_by_id("kw").send_keys(search_string)
self.driver.find_element_by_id("su").click()
self.driver.save_screenshot(f"{search_string}.png")
assert search_string in self.driver.title
if __name__ == '__main__':
unittest.main()
以上代码使用了unittest框架,也可以用pytest框架来替代。其中,setUp()和tearDown()方法分别在每个测试方法开始和结束时运行,用于设置和清理测试环境。@pytest.mark.parametrize装饰器用于参数化搜索条件,这里搜索了三个关键词:selenium、pytest和unittest。在测试方法中,先访问百度首页,然后输入搜索关键词并点击搜索按钮,最后保存屏幕截图。使用assert断言来检查搜索结果页面标题是否包含搜索关键词。测试运行完后,会在当前目录下生成三个屏幕截图文件,分别对应三次搜索的结果。
如果需要将截图和搜索条件进行关联,可以将截图文件名命名为搜索条件,例如使用f"{search_string}.png"的方式。这样就可以直观地看到每个搜索条件对应的搜索结果页面截图了。
最后,可以使用测试报告工具(例如pytest-html、HTMLTestRunner等)来生成测试报告,报告中会包含测试用例名称、执行时间、执行结果、日志和截图等信息。
python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 创建浏览器对象
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.baidu.com")
# 在搜索框中输入关键字
search_box = driver.find_element_by_name("wd")
search_box.send_keys("自动化面试题")
search_box.send_keys(Keys.RETURN)
# 等待搜索结果加载完成
driver.implicitly_wait(10)
# 点击第一个搜索结果
first_result = driver.find_element_by_css_selector("#content_left .result h3 a")
first_result.click()
# 关闭浏览器
driver.quit()
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
抱歉,我没有看到具体的自动化面试题,请提供更具体的问题,我会尽力帮助您回答。同时,给出截图和代码的话需要先了解问题的具体背景,这样才能更好地回答问题。
如果我的回答解决了您的问题,请采纳!