コード例 #1
0
 def right_and_Left(self, loc, img_doc, timeout=30, poll_fre=0.5):
     logger.info("由右向左滑动:")
     self.slide(loc, img_doc, timeout, poll_fre)
     self.driver.swipe(self.Maximum["width"] * 0.80,
                       self.Maximum["height"] * 0.40,
                       self.Maximum["width"] * 0.10,
                       self.Maximum["height"] * 0.40, 200)
コード例 #2
0
 def down_and_up(self, loc, img_doc, timeout=30, poll_fre=0.5):
     logger.info("由下向上滑动:")
     self.slide(loc, img_doc, timeout, poll_fre)
     self.driver.swipe(self.Maximum["width"] * 0.3,
                       self.Maximum["height"] * 0.15,
                       self.Maximum["width"] * 0.3,
                       self.Maximum["height"] * 0.85, 200)
コード例 #3
0
 def get_ele(self, loc, img_doc):
     logger.info("{} : 查找 {} 元素.".format(img_doc, loc))
     try:
         ele = self.driver.find_element(*loc)
     except AssertionError as e:
         logger.exception("查找元素失败:")
         raise e
     else:
         return ele
コード例 #4
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def switch_to_new_window(self):
     # 等待新窗口出现
     time.sleep(2)
     # 获取窗口的句柄,切换进新的窗口
     wins = self.driver.window_handles
     logger.info("xxxxx")
     try:
         self.driver.switch_to.window(wins[-1])
     except:
         pass
コード例 #5
0
 def click_ele(self, loc, img_doc, timeout=30, poll_fre=0.5):
     # 等待元素可见
     self.wait_ele(loc, img_doc, timeout, poll_fre)
     ele = self.get_ele(loc, img_doc)
     logger.info("{}: 点击 {} 元素 ".format(img_doc, loc))
     try:
         ele.click()
     except AssertionError as e:
         logger.info("{}点击 {} 元素失败".format(img_doc, loc))
         raise e
コード例 #6
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def get_element(self,locator,img_doc):
     logger.info("{} : 查找 {} 元素.".format(img_doc,locator))
     try:
         ele = self.driver.find_element(*locator)
     except:
         # 异常信息写入日志
         logger.exception("查找元素失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         return ele
コード例 #7
0
 def get_attr(self, locator, name, img_doc, timeout=30, poll_fre=0.5):
     self.wait_ele(locator, img_doc, timeout, poll_fre)
     ele = self.get_ele(locator, img_doc)
     logger.info("{}: 获取 {}  元素的文本内容.".format(img_doc, locator))
     try:
         tel = ele.get_attribute(name)
     except:
         logger.exception(("获取元素文本值失败{}").format(locator))
         self.save_page_screenshot(img_doc)
         raise
     else:
         logger.info("获取的文本值为: {}".format(tel))
         return tel
コード例 #8
0
 def send_text(self, locator, value, img_doc, timeout=30, poll_fre=0.5):
     # 1)等待元素可见;2)查找元素;3)输入动作
     self.wait_ele(locator, img_doc, timeout, poll_fre)
     ele = self.get_ele(locator, img_doc)
     logger.info("{}: 对 {} 元素输入文本 {}".format(img_doc, locator, value))
     try:
         ele.send_keys(value)
     except:
         # 异常信息写入日志
         logger.exception("输入文本失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
コード例 #9
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def click_element(self,locator,img_doc,timeout=30,poll_fre=0.5):
     # 1)等待元素可见;2)查找元素;3)点击
     self.wait_ele_visible(locator, img_doc, timeout, poll_fre)
     ele = self.get_element(locator, img_doc)
     logger.info("{}: 点击 {} 元素 ".format(img_doc,locator))
     try:
         ele.click()
     except:
         # 异常信息写入日志
         logger.exception("点击操作失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
コード例 #10
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def get_current_url(self,locator,img_doc,timeout=30,poll_fre=0.5):
     self.wait_page_contains_element(locator, img_doc, timeout, poll_fre)
     logger.info("{}: 获取 {}  元素的属性.".format(img_doc, locator))
     try:
         value = self.driver.current_url
     except:
         # 异常信息写入日志
         logger.exception("获取url失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         logger.info("获取的url为: {}".format(value))
         return value
コード例 #11
0
 def Multipoint(self, loc, img_doc, timeout=30, poll_fre=0.5):
     self.wait_ele(loc, img_doc, timeout, poll_fre)
     time.sleep(20)
     # 从中间划到左下
     logger.info(" 从中间划到左下:")
     t1 = TouchAction(self.driver).press(x=self.Maximum["width"]*0.5,y=self.Maximum["height"]*0.5).wait(200)\
         .move_to(x=self.Maximum["width"]*0.1,y=self.Maximum["height"]*0.9).release()
     # 从中间划到右上
     logger.info(" 从中间划到右上:")
     t2 = TouchAction(self.driver).press(x=self.Maximum["width"] * 0.5, y=self.Maximum["height"] * 0.5).wait(200) \
         .move_to(x=self.Maximum["width"] * 0.9, y=self.Maximum["height"] * 0.1).release()
     mm = MultiAction(self.driver)
     mm.add(t1, t2)
     mm.perform()
コード例 #12
0
 def get_toast(self, locator, img_doc, timeout=30, poll_fre=0.5):
     WebDriverWait(self.driver, timeout,
                   poll_fre).until(EC.presence_of_element_located(locator))
     ele = self.get_ele(locator, img_doc)
     logger.info("{}: 获取 {}  元素的文本内容.".format(img_doc, locator))
     try:
         te = ele.text
     except:
         logger.exception(("获取元素文本值失败{}").format(locator))
         self.save_page_screenshot(img_doc)
         raise
     else:
         logger.info("获取的文本值为: {}".format(te))
         return te
コード例 #13
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def get_element_text(self,locator,img_doc,timeout=30,poll_fre=0.5):
     # 1)等待元素存在;2)查找元素;3)获取动作
     self.wait_ele_visible(locator,img_doc,timeout,poll_fre)
     ele = self.get_element(locator,img_doc)
     logger.info("{}: 获取 {}  元素的文本内容.".format(img_doc,locator))
     try:
         text = ele.text
     except:
         # 异常信息写入日志
         logger.exception("获取元素文本值失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         logger.info("获取的文本值为: {}".format(text))
         return text
コード例 #14
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def check_element_visible(self,locator,img_doc,timeout=10,poll_fre=0.5):
     """
      # 检测元素是否在页面存在且可见。
      如果退出元素存在,则返回True。否则返回False
     :return: 布尔值
     """
     logger.info("{}: 检测元素 {} 存在且可见于页面。".format(img_doc,locator))
     try:
         WebDriverWait(self.driver,timeout,poll_fre).until(EC.visibility_of_element_located(locator))
     except:
         logger.exception(" {}秒内元素在当前页面不可见。".format(timeout))
         self.save_page_screenshot(img_doc)
         return False
     else:
         logger.info(" {}秒内元素可见。".format(timeout))
         return True
コード例 #15
0
 def wait_ele(self, loc, img_doc, timeout=30, poll_fre=0.5):
     logger.info("{} : 等待 {} 元素可见".format(img_doc, loc))
     try:
         # 起始等待的时间 datetime
         start = datetime.datetime.now()
         WebDriverWait(self.driver, timeout, poll_fre).until(
             EC.visibility_of_element_located(loc))
     except AssertionError as e:
         logger.exception("等待元素可见失败:")
         self.save_page_screenshot(img_doc)
         raise e
     else:
         # 结束等待的时间
         end = datetime.datetime.now()
         logger.info("等待结束.开始时间为{},结束时间为:{},一共等待耗时为:{}".format(
             start, end, end - start))
コード例 #16
0
 def save_page_screenshot(self, img_doc):
     """
     :param img_doc:
     :return:
     """
     # 路径配置文件中引入图片保存路径  + 年月日-时分秒
     #  # 截图 - 命名。 页面名称_行为名称_当前的时间.png
     #  页面_功能_时间.png
     now = time.strftime("%Y-%m-%d %H_%M_%S")
     screenshot_path = picture_path + "/{}_{}.png".format(img_doc, now)
     try:
         self.driver.save_screenshot(screenshot_path)
     except:
         logger.exception("当前网页截图失败")
     else:
         logger.info("截取当前网页成功并存储在: {}".format(screenshot_path))
コード例 #17
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def get_element_attribute(self,locator,attr,img_doc,timeout=30,poll_fre=0.5):
     # 1)等待元素存在;2)查找元素;3)获取动作
     self.wait_page_contains_element(locator, img_doc, timeout, poll_fre)
     ele = self.get_element(locator, img_doc)
     logger.info("{}: 获取 {}  元素的属性 {}.".format(img_doc,locator,attr))
     try:
         value = ele.get_attribute(attr)
     except:
         # 异常信息写入日志
         logger.exception("获取元素属性失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         logger.info("获取的属性值为: {}".format(value))
         return value
コード例 #18
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def wait_page_contains_element(self,locator,img_doc,timeout=30,poll_fre=0.5):
     logger.info("{} : 等待 {} 元素存在".format(img_doc,locator))
     try:
         # 起始等待的时间 datetime
         start = datetime.datetime.now()
         WebDriverWait(self.driver, timeout, poll_fre).until(EC.presence_of_element_located(locator))
     except:
         # 异常信息写入日志
         logger.exception("等待元素存在失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         # 结束等待的时间
         end = datetime.datetime.now()
         logger.info("等待结束.开始时间为{},结束时间为:{},一共等待耗时为:{}".format(start,end,end-start))
コード例 #19
0
 def get_lb_slide(self, lo, loc, img_doc, timeout=30, poll_fre=0.5):
     logger.info(" 列表滑动:")
     self.wait_ele(lo, img_doc, timeout, poll_fre)
     # 新的页面与old页面进行循环,不相等就行循环
     old = None
     new = self.driver.page_source
     while old != new:
         try:
             self.slide(lo, img_doc)
             ele = self.get_ele(loc, "查找元素")
             ele.click()
         except:
             self.Up_and_down(lo, img_doc)
             old = new
             new = self.driver.page_source
         else:
             break
コード例 #20
0
ファイル: basepage.py プロジェクト: MS-GitHub1/one
 def wait_ele_visible(self,locator,img_doc,timeout=30,poll_fre=0.5):
     """
     :param locator: 元组类型。(元素定位策略,元素定位表达式)
     :param img_doc: 截图文件的命名部分。${页面名称_行为名称}_当前的时间.png
     :param timeout:
     :param poll_fre:
     :return: None
     """
     logger.info("{} : 等待 {} 元素可见".format(img_doc,locator))
     try:
         # 起始等待的时间 datetime
         start = datetime.datetime.now()
         WebDriverWait(self.driver,timeout,poll_fre).until(EC.visibility_of_element_located(locator))
     except:
         # 异常信息写入日志
         logger.exception("等待元素可见失败:")  # 级别:Error   tracebak的信息完整的写入日志。
         # 截图 - 命名。 页面名称_行为名称_当前的时间.png
         self.save_page_screenshot(img_doc)
         raise
     else:
         # 结束等待的时间
         end = datetime.datetime.now()
         logger.info("等待结束.开始时间为{},结束时间为:{},一共等待耗时为:{}".format(start,end,end-start))