Esempio n. 1
0
 def send_keys(self, name, text):
     try:
         self.find(name).send_keys(text)
         logger_cls.info(u'在:{0}输入{1}'.format(name, text))
         time.sleep(3)
     except BaseException:
         logger_cls.error(u'在:{0}输入{1}失败'.format(name, text))
Esempio n. 2
0
 def click(self, name):
     try:
         self.find(name).click()
         logger_cls.info(u'点击:{0}'.format(name))
         time.sleep(3)
     except BaseException:
         logger_cls.error(u'点击:{0}失败'.format(name))
Esempio n. 3
0
 def get(self):
     try:
         self.driver.get(self.url)
         self.driver.implicitly_wait(10)  # 隐性等待,最长等10秒
         logger_cls.info(u'打开:{0}'.format(self.url))
     except BaseException:
         logger_cls.error(u'打开{0}失败'.format(self.url))
     self.loc = loc.Analyze(self.project_name)  #初始化,读取xml 赋值给loc
Esempio n. 4
0
 def being(self, name):
     t = False
     try:
         self.driver.find_element_by_xpath(self.loc[name].UIIdentifier)
         t = True
         logger_cls.info(u'{0}元素存在'.format(name))
     except BaseException:
         logger_cls.info(u'{0}元素不存在'.format(name))
     return t
Esempio n. 5
0
 def find(self, name):  #元素定位,并返回定位好的元素
     try:
         el = WebDriverWait(self.driver, 3,
                            0.5).until(  #设置显示等待时间,每0.5秒检查一次,如果超出指定值就报错
                                EC.presence_of_element_located(
                                    (self.loc[name].type,
                                     self.loc[name].UIIdentifier)))
         logger_cls.info(u'定位元素:{0}'.format(name))
         # logger_cls.info(loc[name].value)
     except BaseException:
         logger_cls.error(u'定位元素:{0}失败'.format(name))
     return el
Esempio n. 6
0
 def myassertIs(self):
     member=context.get("member")
     container=context.get("container")
     driver=context.get("driver")
     name=context.get("name")
     try:
         self.assertIs(member,container)
         logger_cls.info(u"断言成功:{0}等于{1}".format(member,container))
     except AssertionError:
         logger_cls.error(u"断言失败:{0}不等于{1}".format(member,container))
         driver.Screenshot(name)
         # driver.quit()
         raise
Esempio n. 7
0
 def Screenshot(self, name):
     # name='screenshot_'
     isExists = os.path.exists("../images\\")
     # 判断结果
     if not isExists:
         # 如果不存在则创建目录
         # 创建目录操作函数
         os.makedirs("../images\\")
         print u'创建images目录'
     timestrmap = time.strftime('%Y%m%d_%H%M%S')
     imgPath = os.path.join('../images\\', str(timestrmap) + name + '.png')
     self.driver.save_screenshot(imgPath)
     logger_cls.info(u'截图:{0}{1}.png'.format(str(timestrmap), name))
Esempio n. 8
0
 def myassertIn(self):
     logger_cls.info(u'进入断言')
     member=context.get("member")
     container=context.get("container")
     driver=context.get("driver")
     name=context.get("name")
     try:
         self.assertIn(member,container)
         logger_cls.info(u"断言成功:{0}包含{1}".format(member,container))
     except AssertionError:
         logger_cls.error(u"断言失败:{0}不包含{1}".format(member,container))
         driver.Screenshot(name)
         raise
Esempio n. 9
0
    def open(self,
             browser="chrome",
             host='http://localhost:8081/wd/hub'
             ):  # 初始化 打开浏览器 并最大化  self 与java中的this中一样,调用时不用传入self参数
        try:
            self.driver = Remote(command_executor=host,
                                 desired_capabilities={
                                     'platform': 'ANY',
                                     'browserName': browser,
                                     'version': '',
                                     'javascriptEnabled': True
                                 })
            self.driver.maximize_window()
        except Exception as e:
            print(e)

        logger_cls.info(u"打开{0}浏览器".format(browser))
        logger_cls.info(u"最大化")
Esempio n. 10
0
    def randomclick(self, name, div=None):
        text = ''
        i = len(self.driver.find_elements_by_xpath(
            self.loc[name].UIIdentifier))
        logger_cls.info(u'{0}列表中有{1}个参数'.format(name, i))
        y = random.randint(1, i)
        if div == None:
            path = self.loc[name].UIIdentifier + '[' + str(y) + ']'
            text = self.driver.find_element_by_xpath(path).text
            self.driver.find_element_by_xpath(path).click()
            logger_cls.info(u'随机选择列表中的{0}第个参数并点击'.format(y))
        else:
            i2 = len(
                self.driver.find_elements_by_xpath(
                    self.loc[name].UIIdentifier + '[' + str(y) + ']'))
            y2 = random.randint(1, i2)
            path = self.loc[name].UIIdentifier + '[' + str(y2) + ']' + div
            text = self.driver.find_element_by_xpath(path).text
            self.driver.find_element_by_xpath(path).click()
            logger_cls.info(u'随机选择列表中的{0}第个参数并点击'.format(y2))

        logger_cls.info(u'{0}:文本的值为:{1}'.format(name, text))
        time.sleep(3)
        return text
Esempio n. 11
0
 def close(self):
     logger_cls.info(u'3秒后关闭当前页面')
     time.sleep(3)
     self.driver.close()
Esempio n. 12
0
 def quit(self):
     logger_cls.info(u'3秒后关闭浏览器')
     time.sleep(3)
     self.driver.quit()
Esempio n. 13
0
 def get_url(self):
     url = self.driver.current_url
     logger_cls.info(u'当前页面url:' + url)
     return url
Esempio n. 14
0
 def sleep(self, i):
     logger_cls.info(u'暂停{0}秒'.format(i))
     time.sleep(int(i))
Esempio n. 15
0
 def back(self):
     self.driver.back()
     logger_cls.info(u'返回上一页面')
Esempio n. 16
0
 def title(self):
     title = self.driver.title
     logger_cls.info(u'当前页面标题' + title)
     return title
Esempio n. 17
0
 def refresh(self):
     self.driver.refresh()
     logger_cls.info(u'刷新页面')
Esempio n. 18
0
 def switch_to(self):
     self.driver.switch_to.window(self.driver.window_handles[-1])
     logger_cls.info(u'切换页面')
Esempio n. 19
0
 def get_version(self):
     version = self.driver.capabilities['version']
     logger_cls.info(u'浏览器版本:{0}'.format(version))
     return version
Esempio n. 20
0
 def get_name(self):
     name = self.driver.name
     logger_cls.info(u'浏览器名称:{0}'.format(name))
Esempio n. 21
0
 def clear(self, name):
     self.find(name).clear()
     logger_cls.info(u'清空文本框:{0}'.format(name))
Esempio n. 22
0
 def Slide(self, height):
     js = "var q=document.documentElement.scrollTop={0}".format(str(height))
     self.driver.execute_script(js)
     logger_cls.info(u'上下滑动' + str(height))
Esempio n. 23
0
 def focus(self, name):
     ele = self.find(name)
     ActionChains(self.driver).move_to_element(ele).perform()
     logger_cls.info(u'鼠标悬停到元素:{0}'.format(name))
Esempio n. 24
0
 def get_text(self, name):
     text = self.find(name).text
     logger_cls.info(u'{0}文本框的值为:{1}'.format(name, text))
     return text