python+selenium自動化測試——POM模式


 

目錄結構

 

 

 

測試基類 BasePage


from selenium import webdriver
from time import sleep, time


#定義頁面的基礎類,所有的頁面都需要繼承這個基礎類
class BasePage(object):

'''初始化基礎類'''
def __init__(self,driver,url):
self.driver = driver
self.url = url

def open_brows(self,driver):
self.driver.get(self.url)
self.driver.maximize_window()

# 關閉瀏覽器
def quit(self):
self.driver.quit()

#定位元素
def locator_elements(self,*locator):
el = self.driver.find_element(*locator)

#封裝元素定位方式
def locator_element(self, *locator):
by = locator[0]
value = locator[1]
element = None
print('selector',locator)
if by == 'id' or by == 'name' or by == 'class' or by == 'tag' or by == 'link' \
or by == 'plink' or by == 'css' or by == 'xpath':
if by == 'id':
element = self.driver.find_element_by_id(value)
elif by == 'name':
element = self.driver.find_element_by_name(value)
elif by == 'class':
element = self.driver.find_element_by_class_name(value)
elif by == 'tag':
element = self.driver.find_element_by_tag_name(value)
elif by == 'link':
element = self.driver.find_element_by_link_text(value)
elif by == 'plink':
element = self.driver.find_element_by_partial_link_text(value)

elif by == 'css':
element = self.driver.find_element_by_css_selector(value)
elif by == 'xpath':
element = self.driver.find_element_by_xpath(value)
else:
print('沒有找到元素')
return element
else:
print('輸入的元素定位方式錯誤')

#輸入文本
def input_text(self,selector,value):
element = self.find_element(selector) #調用封裝的元素定位方法
element.send_keys(value)
try:
print('輸入的內容:%s' % value)
except BaseException:
print('error')
#點擊元素
def click(self,selector):
element = self.find_element(selector)
element.click()

# 隱式等待
def wait(self,seconds):
self.driver.implicitly_wait(seconds)

# 強制等待
def sleep(self,seconds):
time.sleep(seconds)

#切換至新窗體
def switch_to_new_current(self):
handles = self.driver.window_handles
self.driver.switch_to.window(handles[1])

#關閉舊窗體
def close_old_current(self):
self.driver.close()

# 切換至舊窗體
def switch_to_old_current(self):
handles = self.driver.window_handles
self.driver.switch_to.window(handles[0])

#切換至新窗體,並關閉舊窗體
def switch_window(self):
handles = self.driver.window_handles
self.driver.close()

#獲取元素文本內容進行斷言校驗
def assert_by_text(self,selector,text):
element_text = self.find_element(selector).text
if element_text == text:
print('bingo')
else:
print(element_text + 'VS' + text)
print('wrong')

#切換至Iframe窗體
def switch_to_iframe(self,selector,text):
self.driver.switch_to.frame(self.driver.find_element())

#切換回默認窗體
def switch_to_default(self):
self.driver.switch_to.default_content()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM