【功能自动化】WebTours实现订票流程并设置检查点

环境搭建

1.需要配置WebTours网站

代码实现:

复制代码
# 导入包
from selenium  import webdriver
from selenium.webdriver.support.select import Select
from time import sleep

# 打开浏览器
driver = webdriver.Chrome()
driver.get("http://127.0.0.1:1080/WebTours/")
# 等待3秒
sleep(3)

driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("info")
actual = driver.find_element_by_tag_name("body").text
expect = 'Welcome to the Web Tours site.'
# 精确匹配用in 否则用in 
if expect in actual:
    print("打开网站:成功")
else:
    print("打开网站:失败")

# 切换框架
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("navbar")

# 登录
yhm = 'admin'
mm = '123456'
# 输入用户名
driver.find_element_by_name("username").send_keys(yhm)
# 输入密码
driver.find_element_by_name("password").send_keys(mm)
# 点击登录
driver.find_element_by_name("login").click()
sleep(3)

# 切换框架
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("info")

expect = "Welcome, "+yhm
actual = driver.find_element_by_tag_name("body").text
# 精确匹配用in 否则用in 
if expect in actual:
   print("登录:成功")
else:
    print("登录:失败")

# 搜票
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("navbar")
driver.find_element_by_xpath('//img[@alt="Search Flights Button"]').click()
sleep(3)
   
# 预定票
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("info")
Select(driver.find_element_by_name("depart")).select_by_visible_text="London"
# select_by_value 值是看不见的
Select(driver.find_element_by_name("arrive")).select_by_visible_text="Paris"
driver.find_element_by_name("findFlights").click()
sleep(1)

# 查看预定的航班信息
driver.find_elements_by_name("outboundFlight")[0].click()
driver.find_element_by_name("reserveFlights").click()
sleep(1)
   
# 支付信息
driver.find_element_by_name("buyFlights").click()
sleep(1)


# 切换框架

expect = "Flight 240 leaves London for Paris"
actual = driver.find_element_by_tag_name("body").text
# 精确匹配用in 否则用in 
if expect in actual:
   print("订票:成功")
else:
    print("订票:失败")
 
#预定下一个
driver.find_element_by_name("Book Another").click()
sleep(1)
   
# 切换框架
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("navbar")
   
driver.find_element_by_xpath('//img[@alt="SignOff Button"]').click()
sleep(1)


# 切换框架
driver.switch_to_default_content()
driver.switch_to_frame("body")
driver.switch_to_frame("info")

expect = "sign up now"
actual = driver.find_element_by_tag_name("body").text
# 精确匹配用in 否则用in 
if expect in actual:
   print("注销:成功")
else:
    print("注销:失败")
    
# info 
driver.quit()
相关推荐
江畔柳前堤4 小时前
github实战指南01-账号配置与 SSH 密钥
运维·人工智能·深度学习·ssh·github·pyqt·信号处理
Moshow郑锴5 小时前
Ubuntu 26.04 中文输入法 : fcitx5+Rime中州韵引擎
linux·运维·ubuntu
小赖同学啊8 小时前
智能连接器集群化高可用生产方案
linux·运维·人工智能
wanghao6664558 小时前
DevOps 从入门到实践:构建高效交付流水线
运维·devops
qq_546937278 小时前
从“能用”到“超神”,DeepSeek++给网页版装上“大脑”和“手脚”,支持长期记忆、MCP工具与自动化任务!
运维·自动化
ZStack开发者社区8 小时前
基于AI Agent的ZCF API文档全链路自动化
运维·人工智能·自动化
Moshow郑锴8 小时前
Ubuntu 26.04 更换阿里云源镜像
linux·运维·ubuntu
迷糊小面包9 小时前
Docker Hadopp集群版部署搭建及常规问题解疑
运维·docker·容器
ShineWinsu9 小时前
对于Linux:线程概念与分页存储管理的解析
linux·运维·服务器·面试·线程·进程·虚拟空间地址
器灵科技10 小时前
AI视频工具实测:Seedance/可灵/HappyHorse谁最能打?
java·运维·数据库·人工智能·github