【功能自动化】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()
相关推荐
筱小虾米1 小时前
解决SSL VPN客户端一直提示无法连接服务器的问题
运维·服务器
dntktop3 小时前
内嵌编辑器+AI助手,Wave Terminal打造终端新体验
运维
kaiyuanheshang5 小时前
docker 中的entrypoint和cmd指令
运维·docker·容器·cmd·entrypoint
wanhengwangluo6 小时前
裸金属服务器能够帮助企业解决哪些问题?
运维·服务器
Python私教6 小时前
除了 Docker,还有哪些类似的容器技术?
运维·docker·容器
titxixYY6 小时前
SElinux
linux·运维·服务器
聚名网8 小时前
手机无法连接服务器1302什么意思?
运维·服务器·智能手机
先天打工圣体的男人9 小时前
Linux中安装InfluxDB
linux·运维·服务器
菜鸟小贤贤10 小时前
python+pytest+allure利用fix实现接口关联
python·macos·自动化·pytest
dessler10 小时前
云计算&虚拟化-kvm-克隆(clone)虚拟机
linux·运维·云计算