一.PageObject层分析
PO层是核心层,该层不但涉及到代码技术,还涉及到对项目业务的分析,进而对相关的页面进行分析,首先,分析要进行PO的页面;其次,对在每个范围内的页面进行细节分析。
二.搜索火车票页面
搜索火车票页面需要涉及如下元素
1.1出发城市(输入框)
1.2.到达城市(输入框)
1.3.出发时间(输入框)
1.4开始搜索(按钮)
代码实现如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2019/12/27 10:29
# @file : search_page.py
# @Software : PyCharm
# @author : MAYH
# @contact : mayh@chnsys.com.cn
# @Version :V1.1.0
"""
文件说明:搜索火车票页面
"""
from Base.base import Base
from selenium.webdriver.common.by import By
import time
class SearchPage( Base ):
# 出发地
def search_leve(self):
return self.findele( By.ID, "notice01" )
# 八大定位
# 到达地
def search_arrive(self):
return self.findele( By.ID, "notice08" )
# 出发时间
def search_date(self):
return self.findele( By.ID, "dateObj" )
# 搜索按钮
def search_bth(self):
return self.findele( By.ID, 'searchbtn' )
def search_current(self):
return self.findele( By.CSS_SELECTOR, "#searchtype >li.current" )
# 通过selenium来执行JavaScript语句
def search_js(self, value):
jsvalue = "document.getElementById('dateObj').value='%s'" % (value)
self.js( jsvalue )
def search_train(self, leave, arrvie, leave_date):
self.search_leve().send_keys( leave )
time.sleep( 2 )
self.search_arrive().send_keys( arrvie )
time.sleep( 2 )
self.search_js( leave_date )
time.sleep(2)
self.search_current().click()
time.sleep(2)
self.search_bth().click()
time.sleep( 4 )
return self.url()
三.预定火车票
预定火车票主要涉及到以下页面元素:
1.预定车票按钮
2.动车复选框
3.关闭浮层窗口
代码实现如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2019/12/27 15:44
# @file : book_page.py
# @Software : PyCharm
# @author : MAYH
# @contact : mayh@chnsys.com.cn
# @Version :V1.1.0
"""
文件说明:预定火车票页面
"""
from Base.base import Base
from selenium.webdriver.common.by import By
import time
class BooKPage( Base ):
# 预定火车票
def book(self):
return self.findele( By.XPATH, "//*[@id='tbody-01-K5261']/div[1]/div[6]/div[4]/a" )
# 动车
def book_typeD(self):
return self.findele( By.CSS_SELECTOR, "#resultFilters01 >dl:nth-child(1) >dd.cuirent>label>i" )
# 关闭浮层
def book_close(self):
return self.findele( By.CSS_SELECTOR, "appd_wrap_close" )
def book_nologin(self):
return self.findele( By.CSS_SELECTOR, "btn_nologin" )
def book_btn(self):
try:
# time.sleep( 7 )
# self.book_close().click()
time.sleep( 2 )
self.book().click()
# self.book_nologin().click()
except:
self.log.error( "车票查询失败" )
None
time.sleep(2)
return self.url()
四.订单页面
订单预定成功后,会跳转到订单页面,代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2019/12/30 11:01
# @file : order_page.py
# @Software : PyCharm
# @author : MAYH
# @contact : mayh@chnsys.com.cn
# @Version :V1.1.0
"""
文件说明:订单页面
"""
import time
from Base.base import Base
from selenium.webdriver.common.by import By
class OrderPage(Base):
# 预定火车票
def detail_name(self):
return self.findele(By.CSS_SELECTOR,"#pasglistdiv >div>ul>li:nth-child(2) >input")
def user_info(self,name):
time.sleep(5)
self.detail_name().send_keys(name)
time.sleep(2)
return self.url()