from selenium.webdriver.chrome.webdriver import WebDriver
class BasePage:
def __init__(self, driver: WebDriver, url=None, frame=None):
self.driver = driver
self.url = url
self.frame = frame
def open(self):
"""有url打开url,有frame切换frame"""
if self.url:
self.driver.get(self.url)
if self.frame:
self.driver.switch_to.default_content()
self.driver.switch_to.frame(self.driver)
def find(self, by, value, index=None):
"""封装一个text定位方法{value}注意前后的空格,如果by等于text则走value,by和Value会被重写,如果不是传啥还返回啥,所有此方法可以有很多if,
2.先判断index 索引是否为空,不为空的话返回find_elements复数
"""
if index is None:
if by == "text":
by = "xpath"
value = f'//*[text()=" {value} "]'
return self.driver.find_element(by, value)
else:
if by == "text":
by = "xpath"
value = f'//*[text()=" {value} "]'
return self.driver.find_elements(by, value)[index]
def click(self, by, value, index=None):
self.find(by, value, index).click()
def input_to(self, by, value, text):
self.find(by, value).send_keys(text)
调用
import time
from pages.base_page import BasePage
class BaoBeiPage(BasePage):
ordermang = ("text", "订单管理")
baobeilist = ("link text", '列表')
cleartime = ('xpath', "//span[contains(text(),'清空')]", 0)
def enter_baobeilist(self):
time.sleep(20)
self.click(*self.ordermang)
self.click(*self.baobeilist)
def input_keywords(self):
self.input_to(*self.keywords, '202111179494')
def click_search(self):
self.click(*self.search)
def time_clear(self):
self.click(*self.timeinput)
self.click(*self.cleartime)