def hover_element(self,loc): #鼠标悬浮 self.wait_elevisible(loc) try: log.info("鼠标悬停在:{0}之上".format(loc)) ActionChains(self.driver).move_to_element(self.find_element(*loc)).perform() except: log.error("鼠标悬停操作失败") return self
def get_text(self,loc): #获取元素文本 self.wait_elevisible(loc) try: log.info("获取元素:{0}的文本内容".format(loc)) text = self.find_element(*loc).text except: log.error("获取元素:{0}的文本内容失败".format(loc)) return text
def context_click(self,loc): #右键操作 self.wait_elevisible(loc) try: log.info("右击:{0}".format(loc)) ActionChains(self.driver).context_click(self.find_element(*loc)) except: log.error("{0}右击失败".format(loc)) return self
def click(self,loc): #点击操作 self.wait_elevisible(loc) try: log.info("点击:{0}".format(loc)) self.find_element(*loc).click() except: log.error("{0}点击失败".format(loc)) return self
def double_click(self,loc): #双击操作 self.wait_elevisible(loc) try: log.info("双击:{0}".format(loc)) ActionChains(self.driver).double_click(self.find_element(*loc)).perform() except: log.error("{0}双击失败".format(loc)) return self
def window_handles(self): #切换窗口 try: log.info("切换窗口") windows = self.driver.window_handles self.driver.switch_to.window(windows[-1]) except: log.error("切换窗口失败") return self
def send_keys(self,loc,text): #输入操作 self.wait_elevisible(loc) try: log.info("在:{0}中输入:{1}".format(loc,text)) self.find_element(*loc).clear() self.find_element(*loc).send_keys(text) except: log.error("输入操作失败") return self
def wait_elevisible(self,loc): try: start = time.time() WebDriverWait(self.driver, 20, 0.5).until(EC.visibility_of_element_located(loc)) end = time.time() log.info("{0}出现,等待时间{1}s".format(loc,round(end - start, 2))) except: log.error("未能等待元素出现。") return self
def isElementPresent(self,loc): #判断元素是否存在 try: element = self.driver.find_element(*loc) except: log.error("元素{0}不存在".format(loc)) return False else: log.info("元素{0}存在".format(loc)) return True
def swipe_button(self,loc): #滑动到元素 try: log.info("滑动到元素{0}".format(loc)) target = self.driver.find_element(*loc) self.driver.execute_script("arguments[0].scrollIntoView();", target) time.sleep(2) except: log.error("滑动到元素{0}失败".format(loc)) return self
def mysql_execute_sql(self, sql, *value): self.connect_db() try: n = self.get_cursor().execute(sql, *value) except: log.error("execute failed:" + sql) log.error("param:" + str(*value)) self.db.commit() self.close_db() log.info("操作成功,执行语句为" + sql + str(*value)) return n
def oracle_execute_sql(self, sql, params={}): self.connect_db() try: n = self.get_cursor().execute(sql, params) except: log.error("execute failed:" + sql) log.error("param:" + str(params)) self.db.commit() self.close_db() log.info("操作成功,执行语句为" + sql + str(params)) return n
def oracle_select_one(self, sql, params={}): self.connect_db() try: cursor = self.get_cursor() cursor.execute(sql, params) result = cursor.fetchone() except: log.error("select failed:" + sql) log.error("param:" + str(params)) self.db.commit() self.close_db() log.info("操作成功,执行语句为" + sql + " " + "参数值为:" + str(params)) log.info("查询成功,结果为:" + str(result)) return result
def mysql_select_list(self, sql, *value): self.connect_db() try: cursor = self.get_cursor() cursor.execute(sql, *value) result = cursor.fetchall() except: log.error("select failed:" + sql) log.error("param:" + str(*value)) self.db.commit() self.close_db() log.info("操作成功,执行语句为" + sql + " " + "参数值为:" + str(*value)) log.info("查询成功,结果为:" + str(result)) return result
def connect_db(self): if self.dbtype == 'mysql': try: self.db = pymysql.connect(self.host, self.username, self.password, self.database) except: log.error("connectDatabase failed") elif self.dbtype == 'oracle': try: self.db = cx_Oracle.connect(self.username, self.password, self.host + "/CBSS", encoding="UTF-8") except: log.error("connectDatabase failed") else: print("出错了")