UI自动化测试
Qunar机票搜索场景
访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发、到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索列表页。
在列表页停留1分钟,至到页面上出现“搜索结束”。
如果出现航班列表,对于出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表中会出现“第一程”、 “第二程”;对于没有出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表底部中会出现“报价范围”
如果不出现航班列表,则页面会出现“该航线当前无可售航班”
请使用maven创建java工程,引入Selenium框架,编写WebUI代码,实现上述人工操作和验证。要求能随机验证100个城市对的3个月内的任意搜索条件。
未完工代码
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.common.exceptions import InvalidSelectorException
from selenium.common.exceptions import NoSuchElementException
dictlist = {}
dr = webdriver.Firefox()
def search():
#open website
dr.get('http://flight.qunar.com')
#click single travel
dr.find_element_by_id('searchTypeSng').click()
#clear
dr.find_element_by_xpath("//input[@name='fromCity']").clear()
#enter from city
dr.find_element_by_xpath("//input[@name='fromCity']").send_keys("北京".decode("utf-8"))
#clear
dr.find_element_by_xpath("//input[@name='toCity']").clear()
#enter to city
dr.find_element_by_xpath("//input[@name='toCity']").send_keys("深圳".decode("utf-8"))
#clear
dr.find_element_by_xpath("//input[@name='fromDate']").clear()
#enter date
dr.find_element_by_xpath("//input[@name='fromDate']").send_keys("2014-07-22")
#click
dr.find_element_by_xpath("//div[@id='js_flighttype_tab_domestic']//button[text()='搜 索']").click()
#sleep
sleep(6)
#wait searching end
while True:
tex = dr.find_element_by_id('progTip')
if(tex.text.find("搜索结束".decode("utf-8")) >= 0):
break
else:
sleep(1)
def elementsisexist(id):
try:
dr.find_element_by_id(id)
return True
except NoSuchElementException, e1:
return False
def finddicts():
cnt = 0
while True:
try:
links = dr.find_elements_by_class_name("avt_column")
for link in links:
print(link.get_attribute('id'))
dictlist[cnt] = link.get_attribute('id')
cnt += 1
break
except InvalidSelectorException,e:
if(elementsisexist('nextXI3')):
dr.find_element_by_id('nextXI3').click()
sleep(10)
else:
break
if __name__=='__main__':
search()
finddicts()
dr.quit()
浙公网安备 33010602011771号