其中,base_page是login_page、search_page的基础。test_login调用login_page,login_page调用base_page,同理test_search。
1 from selenium.webdriver.support.wait import WebDriverWait
2
3 '''
4 这个类主要是完成所有页面的一些公共方法的封装
5 '''
6 class Action(object):
7 #初始化
8 def __init__(self,se_driver):
9 self.driver = se_driver
10
11 #定义open方法
12 def open(self,url):
13 self.driver.get(url)
14 self.driver.maximize_window()
15
16 #重写元素定位的方法
17 def find_element(self,*loc):
18 try:
19 WebDriverWait(self.driver,20).until(lambda driver:driver.find_element(*loc).is_displayed())
20 return self.driver.find_element(*loc)
21 except Exception as e:
22 print("未找到%s"%(self,loc))
23
24 #定义script方法,用于执行js脚本
25 def script(self,src):
26 self.driver.execute_script(src)
27
28 #重写send_keys方法
29 def send_keys(self,loc,value,clear_first=True,clik_first=True):
30 try:
31 if clik_first:
32 self.find_element(*loc).click()
33 if clear_first:
34 self.find_element(*loc).clear()
35 self.find_element(*loc).send_keys(value)
36 except AttributeError:
37 print("未找到%s"%(self,loc))
1 from selenium.webdriver.common.by import By
2 from seleniumframework.PO import base_page
3 import time
4
5 class LoginPage(base_page.Action):
6 link_loc = (By.LINK_TEXT,"登录")
7 name_loc = (By.ID,"TANGRAM__PSP_8__userName")
8 password_loc = (By.ID,"TANGRAM__PSP_8__password")
9 submit_loc = (By.ID,"TANGRAM__PSP_8__submit")
10
11 username_top = (By.LINK_TEXT,"hanxiaobei")
12
13
14 def click_link(self):
15 self.find_element(*self.link_loc).click()
16 time.sleep(3) #等待3秒,等待登录弹窗加载完成
17
18 def run_case(self,value1,value2):
19 self.find_element(*self.name_loc).send_keys(value1)
20 self.find_element(*self.password_loc).send_keys(value2)
21 time.sleep(20) #手动输入验证码
22 self.find_element(*self.submit_loc).click()
23 time.sleep(5) #等待5秒,登录后的页面加载完成
24
25 def get_username(self):
26 return self.find_element(*sel