当前位置: 首页 > news >正文

软件测试实验六

任务二:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 打开Edge
driver = webdriver.Edge()
driver.get("https://github.com")# 等待页面加载
time.sleep(2)# 点击搜索框区域并输入关键词
search_area = driver.find_element(By.CSS_SELECTOR, "div.search-input-container")
search_area.click()
time.sleep(1)search_box = driver.find_element(By.ID, "query-builder-test")
search_box.send_keys("Selenium")
search_box.send_keys(Keys.ENTER)# 等待搜索结果加载
time.sleep(3)# 新的检查点:检查页面是否有搜索结果(比检查标题更稳定)
if "No results matched" in driver.page_source:print("❌ 检查点失败:未找到搜索结果!")driver.quit()exit(1)
else:print("✅ 检查点验证成功!找到搜索结果。")driver.quit()

image

任务三:

import csv
import random
import pytest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef read_csv():with open('search_data.csv', 'r', encoding='utf-8') as f:return list(csv.DictReader(f))@pytest.mark.parametrize("data", read_csv())
def test_search(data):driver = webdriver.Edge()driver.get("https://github.com")wait = WebDriverWait(driver, 10)# 点击搜索按钮,展开输入框search_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@aria-label='Search or jump to…']")))search_button.click()# 等待搜索框加载search_box = wait.until(EC.presence_of_element_located((By.NAME, "query-builder-test")))# 输入关键词并提交search_box.send_keys(data["keyword"])search_box.submit()# 根据预期结果验证if data["expected_result"] == "有结果":assert "Your search did not match any" not in driver.page_sourceelse:try:# 使用XPath检查是否存在 "没有匹配的仓库" 提示wait.until(EC.presence_of_element_located((By.XPATH, "//h3[contains(text(), 'Your search did not match any')]")))# 如果找到了该提示元素,说明没有结果no_result = Trueexcept:# 如果没有找到该提示元素,说明有结果no_result = False# 断言结果是否符合预期assert no_result, f"预期无结果,但搜索 '{data['keyword']}' 显示有结果。"driver.quit()# 延时,防止触发访问限制time.sleep(random.randint(0, 10))

image

http://www.jsqmd.com/news/840107/

相关文章:

  • ARM+FPGA异构计算:软硬件协同定制与生态共建实践指南
  • 五相同步电机模型预测控制:原理、算法设计与仿真实现
  • claude windows安装
  • 从选型到图传:ESP32-S系列USB摄像头实战开发指南
  • AI工作流编排框架aiflows:构建复杂AI应用的模块化解决方案
  • EnvScaler:AI/ML环境即代码,解决“在我机器上能跑”的部署难题
  • 10分钟精通DeepMosaics:智能图像隐私保护与修复实战指南
  • 终极微信好友检测指南:3分钟找出谁删了你
  • 2026年四川市政管道紫外光固化厂家推荐——专业实力与本土标杆解析 - 深度智识库
  • ENVI遥感图像处理保姆级教程:从打开TM影像到彩色合成(附实验数据)
  • PyFluent完全指南:用Python自动化CFD仿真的终极解决方案
  • 为OpenClaw智能体工具配置Taotoken作为后端模型服务
  • 3D视频转2D终极指南:用VR-Reversal解锁沉浸式观影新体验
  • 学妹问哪个免费降AI软件好用?这款论文AI率从78%降到4.5%
  • 石家庄漏水检测2026指南快速解决家庭漏水困扰 - 品牌企业推荐师(官方)
  • RK3568 ARM核心板高精度NTP时间同步方案:Chrony配置与工业应用实践
  • 初创公司如何利用Taotoken的Token Plan实现AI应用成本可控
  • LabVIEW 开发NI‑DAQmx 可重触发
  • 深圳龙岗跨境财税服务指南:合规需求与靠谱机构解析 - 资讯速览
  • 别再为地图边界发愁了!Cartopy绘制中国区域气象图的正确姿势与避坑指南
  • 体验 Taotoken 官方折扣价带来的模型调用成本下降
  • Java学习的三大阶段详解
  • 基于树莓派与传感器实现智能门情景音效触发系统
  • 5分钟掌握全平台炫酷抽奖:Magpie-LuckyDraw开源项目深度解析
  • 革命性视频转3D动作捕捉工具:从普通视频到专业级BVH文件的突破性解决方案
  • Snipe-IT资产管理终极指南:三步构建企业级IT资产追踪系统
  • NotebookLM+文本细读=新批评2.0?实证数据揭示:使用该工具的论文引用率提升3.8倍(N=147篇CSSCI期刊)
  • 电赛论文想拿高分?资深评审视角下的避雷指南与写作模板(附评分标准拆解)
  • 手把手教你用STM32L431和SIMCOM7600CE实现4G远程OTA升级(含完整代码与避坑指南)
  • Web Bluetooth + CircuitPython:浏览器无线编程物联网硬件实战指南