对库的使用?
自己最熟悉哪个库,如何使用这些库的,是否做了基于复用的封装,怎么考虑的这些封装
参考以下内容:
分别封装了基础类例如:等待某元素出现的方法,更方便查找操作元素的方法,和被测试业务相关的类和方法
代码举例:
class BaseView(object): def __init__(self, driver): self.driver = driver
# 获取一个页面,参数为url
def get(self, *loc):
return self.driver.get(*loc)
# 普通元素定位
# by_id find_element(By.id,'xxx')或find_element_by_id('') # by_name find_element(By.name,'xxx')或find_element_by_name('') # by_xpath find_element(By.xpath,'xxx')或find_element_by_xpath('') # by_class_name find_element(By.className,'xxx')或find_element_by_class_name('') # by_link_text find_element(By.linkText,'xxx')或find_element_by_link_text('') # by_partial_link_text find_element(By.partialLinkText,'xxx')或find_element_by_partial_link_text('') # by_tag_name find_element(By.tagName,'xxx')或find_element_by_tag_name('') # by_css_selector find_element(By.cssSelector,'xxx')或find_element_by_css_selector('') def find_element(self, *loc): return self.driver.find_element(*loc)
# 元素定位返回一个数组list,一般用于判断元素是否存在
def find_elements(self, *loc):
return self.driver.find_elements(*loc)
# 获取屏幕大小
def get_window_size(self):
return self.driver.get_window_size()
# 滑动屏幕
def swipe(self, star_x, star_y, end_x, end_y, duration):
return self.driver.swipe(star_x, star_y, end_x, end_y, duration)
# 时间等待(隐形等待)
def implicitly_wait(self, t):
return self.driver.implicitly_wait(t)
# 时间等待(显性等待)
def web_driver_wait(self, t, s):
# 由于不长使用,不再进行具体的封装
# 每经过s秒就查看一次指定元素是否可见,如果操作ts薄超时异常
return WebDriverWait(self.driver, t, s) # 可以配合until或者until_not方法,再辅助以一些判断条件,就可以构成这样一个场景