这部分内容是页面上的一些基本操作
from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException, \
StaleElementReferenceException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains
from common.KeyActions import *
from common.errors import StopTestCaseException, KTEC_WebDriverException
from selenium.webdriver.support.select import Select
from common.elementFinder import ElementFinder
from selenium.webdriver.common.keys import Keys
from common.log import *
import os, win32gui, win32con, time
from common.publicFunc import *
class BasePage(ElementFinder):
"""
Second encapsulation based on Selenium
"""
#
# def __init__(self, driver):
# self.driver = drive
def open(self, url):
""" Open url, browser maximization"""
self.driver.get(url)
self.driver.maximize_window()
def get_url(self):
url = self.driver.current_url
return url
def open_tap(self, url):
"""open a new browser tap"""
old_handles = self.get_window_handles()
simulateKey('ctrl', 't')
time.sleep(5)
for _ in range(5):
if len(self.get_window_handles()) > len(old_handles):
break
else:
time.sleep(2)
self.switch_to_window(self.get_window_handles()[len(old_handles)])
self.driver.get(url)
def close_tap(self):
"""close browser tap"""
self.driver.close()
def close_browser(self):
"""close browser"""
self.driver.quit()
def go_back(self):
"""go back"""
self.driver.back()
def refresh_(self):
"""refresh browser"""
self.driver.refresh()
def click(self, locator, isUpdated=False):
""" click element"""
# element = self.find_element_clickable(locator)
element = self.find_element_clickable(locator)
if not element:
log.warning('[BS]_436:element{ele} not exist'.format(ele=locator))
return
for _ in range(2):
log.info('[BS]_006:step --> click {ele} time={num}'.format(ele=locator, num=_ + 1))
try:
self.click_element(element)
# if Mode().getBrowserType() is None or (Mode().getBrowserType() is not None and (Mode().getBrowserType()).lower()=='ie'):
# self.driver.execute_script("$(arguments[0]).click()", element)
# else:
# self.click_element(element)
break
except KTEC_WebDriverException as e:
log.warning('[BS]_434: click {ele} failed!,{info}'.format(ele=locator, info=e))
time.sleep(1)
element = self.find_element_clickable(locator)
except Exception as e:
log.warning('[BS]_444:click {ele},unknown error:{error}'.format(ele=locator, error=e))
raise StopTestCaseException
def right_click(self, driver, locator, isUpdated=False):
""" click element"""
time.sleep(1)
# element = self.find_element_clickable(locator)
element = self.find_element_clickable(locator)
if not element:
log.warning('[BS]_436:element{ele} not exist'.format(ele=locator))
return
for _ in range(2):
log.info('[BS]_006:step --> click {ele} time={num}'.format(ele=locator, num=_ + 1))
try:
ActionChains(driver).context_click(element).perform()
# if Mode().getBrowserType() is None or (Mode().getBrowserType() is not None and (Mode().getBrowserType()).lower()=='ie'):
# self.driver.execute_script("$(arguments[0]).click()", element)
# else:
# self.click_element(element)
break
except KTEC_WebDriverException as e:
log.warning('[BS]_434: click {ele} failed!,{info}'.format(ele=locator, info=e))
time.sleep(1)
element = self.find_element_clickable(locator)
except Exception as e:
log.warning('[BS]_444:click {ele},unknown error:{error}'.format(ele=locator, error=e))
raise StopTestCaseException
def click_element(self, element):
log.info('[BS]_00601:step --> click_element')
try:
element.click()
time.sleep(1)
except StaleElementRefe
Selenium二次封装

最低0.47元/天 解锁文章
401

被折叠的 条评论
为什么被折叠?



