菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题: selenium-贺威栋-2021.02.28 [打印本页]
作者: I5029 时间: 2021-2-28 18:06
标题: selenium-贺威栋-2021.02.28
'''
utility 工具
'''
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from time import sleep
class BoxDriver:
def __init__(self,url,browser='Chrome'):
'''
browser浏览器类型
'''
if browser == 'Chrome':
self.driver = webdriver.Chrome()
elif browser == 'Firefox':
self.driver = webdriver.Firefox()
elif browser == 'IE':
self.driver = webdriver.IE()
self.driver.implicitly_wait(10)
self.driver.maximize_window()
self.driver.get(url)
def get(self, url):
'''
url 网页地址
'''
self.driver.get(url)
def maximize_window(self):
'''
窗口最大化
'''
self.driver.maximize_window()
def minimize_window(self):
'''
窗口最小化
'''
self.driver.minimize_window()
def wait(self,second):
'''
休眠
second 休眠时间,单位秒
'''
sleep(second)
def webdriver_wait(self):
'''
显示等待
'''
def implicitly_wait(self,second=10):
'''
隐式等待
second 最大等待时间
'''
self.driver.implicitly_wait(second)
def convert_selector_to_locator(self,selector):
'''
将自定义的定位方式转换为selenium的标准定位方式
'id account' --> By.ID, 'account'
'''
# 定位方式
by = selector.split(' ')[0] # 分割字符串
# 定位值
value = selector.split(' ')[1]
if by == 'id' or by == 'i':
locator = (By.ID,value)
elif by == 'name' or by == 'n':
locator = (By.NAME, value)
elif by == 'class' or by == 'c':
locator = (By.CLASS_NAME, value)
elif by == 'link_text' or by == 'l':
locator = (By.LINK_TEXT, value)
elif by == 'partial_link_text' or by == 'p':
locator = (By.PARTIAL_LINK_TEXT, value)
elif by == 'tag_name' or by == 't':
locator = (By.TAG_NAME, value)
elif by == 'xpath' or by == 'x':
locator = (By.XPATH, value)
elif by == 'css_selector' or by == 'css':
locator = (By.CSS_SELECTOR, value)
return locator
def locate_element(self,selector):
'''
定位单个元素
selector 自定义定位方式
'''
locator = self.convert_selector_to_locator(selector)
return self.driver.find_element(*locator)
def locate_elements(self,selector):
'''
定位单个元素
selector 自定义定位方式
'''
locator = self.convert_selector_to_locator(selector)
return self.driver.find_elements(*locator)
def input(self,selector,keyword):
'''
向元素中写入文本
selector 自定义定位方式
keyword 要写入的文本
'''
self.locate_element(selector).send_keys(keyword)
def click(self,selector):
'''
单击元素
selector 自定义定位方式
'''
self.locate_element(selector).click()
def switch_to_frame(self,selector):
'''
进入frame
selector 自定义定位方式
'''
iframe = self.locate_element(selector)
self.driver.switch_to_frame(iframe)
def select_by_index(self,selector,index):
'''
根据index选择
index 下标
selector 自定义定位方式
'''
select = self.locate_element(selector)
options = Select(select)
options.select_by_index(index)
def select_by_value(self,selector,value):
'''
根据value选择
value value属性的值
selector 自定义定位方式
'''
select = self.locate_element(selector)
options = Select(select)
options.select_by_value(value)
def select_by_visible_text(self,selector,text)
根据选择
text 文本的值
selector 自定义定位方式
'''
select = self.locate_element(selector)
options = Select(select)
options.select_by_visible_text(text)
def quit(self):
'''
退出浏览器
'''
self.driver.quit()
def close(self):
'''
关闭当前页
'''
self.driver.close()
class BasePage:
def __init__(self,driver:BoxDriver):
self.driver = driver
# class GetYaml:
# def
if __name__ == '__main__':
BoxDriver()
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) |
Powered by Discuz! X3.4 |