def post(self, url, paramd=''): try: if url.startswith('http') or url.startswith('https'): url = self.url else: url = self.url + "/" + url # logger.info(url) if paramd is None or paramd == '': result = self.session.post(url) else: # 将参数替换成值, 当没有传参{}时,将不会执行 data = self.__params(paramd) # 将字符串处理成字典 datas = self.__todic(data) # print("date:"+str(datas)) result = self.session.post(url, data=datas) self.jsonre = json.loads(result.text) print(self.jsonre) self.writer.write(self.writer.row, self.writer.clo, 'PASS') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre)) except Exception as e: self.writer.write(self.writer.row, self.writer.clo, 'FAIL') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre)) logger.exception(e)
def callmethod(self, method, paramd=''): try: paramd = self.__params(paramd) # 将参数以、分隔 if not paramd == '': paramd = paramd.split('、') print('paramd:' + str(paramd)) # print(self.client.service.__getattr__) if paramd == '': self.result = self.client.service.__getattr__(method)() else: # 将参数替换成值, 当没有传参{}时,将不会执行 self.result = self.client.service.__getattr__(method)(*paramd) self.jsonre = json.loads(self.result) print(self.jsonre) self.writer.write(self.writer.row, self.writer.clo, 'PASS') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre)) except Exception as e: self.writer.write(self.writer.row, self.writer.clo, 'FAIL') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre)) logger.exception(e)
def scoll(self, x, y): # 使用js方式滚动 js = "window.scrollBy(" + str(x) + "," + str(y) + ")" try: self.driver.execute_script(js) except Exception as e: logger.exception(e)
def out_iframe(self): try: self.driver.switch_to.default_content() # self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') logger.exception(e)
def click(self, location): try: self.__findElement(location).click() # self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') # self.writer.write(self.writer.row, self.writer.clo + 1, e) logger.exception(e)
def savejson(self, key, k): res = '' try: res = self.jsonre[key] except Exception as e: logger.exception(e) self.param[k] = res # print("保存的值:" + self.param[k]) self.writer.write(self.writer.row, self.writer.clo, 'PASS') self.writer.write(self.writer.row, self.writer.clo + 1, str(res))
def addheader(self, token, value): try: res = self.__params(value) self.session.headers[token] = res self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: self.writer.write(self.writer.row, self.writer.clo, 'FAIL') self.writer.write(self.writer.row, self.writer.clo + 1, str(value)) logger.exception(e)
def addheader(self, token, value): res = self.__params(value) self.header[token] = res try: self.client = Client(self.wsdlurl, doctor=self.doctor, headers=self.header) self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: self.writer.write(self.writer.row, self.writer.clo, 'FAIL') self.writer.write(self.writer.row, self.writer.clo + 1, str(value)) logger.exception(e)
def openurl(self, url): ''' :param url: 浏览器打开的地址 :return: ''' try: self.driver.get(url) # self.writer.write(self.writer.row,self.writer.clo, 'PASS') # self.writer.write(self.writer.row, self.writer.clo+1, url) except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') # self.writer.write(self.writer.row, self.writer.clo + 1, 'url错误!') logger.exception(e)
def inputtext(self, location, text): ''' :param location:定位 :param text: 输入数据 :return: 无 ''' try: self.__findElement(location).send_keys(text) # self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') # self.writer.write(self.writer.row, self.writer.clo + 1, e) logger.exception(e)
def assertequals(self, key, value): # value1 = '' try: value1 = self.__params(value) except Exception as e: logger.exception(e) if str(self.jsonre[key]) == str(value1): self.writer.write(self.writer.row, self.writer.clo, 'PASS') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre[key])) else: self.writer.write(self.writer.row, self.writer.clo, 'FAIL') self.writer.write(self.writer.row, self.writer.clo + 1, str(self.jsonre[key]))
def hover(self, location): ''' 鼠标悬浮/还可以滚动鼠标之后在找到对应的元素 :param location: 鼠标 悬浮的控件的location :return: ''' try: ele = self.__findElement(location) # self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') # self.writer.write(self.writer.row, self.writer.clo + 1, e) logger.exception(e) actions = ActionChains(self.driver) # 鼠标移动到对应元素上 actions.move_to_element(ele).perform()
def to_windows(self, id): ''' :param id: 窗口的下标 :return: ''' # 获取浏览器窗口 handles = self.driver.window_handles # 关闭当前窗口,关闭 self.driver.close() try: # 切换对应浏览器窗口 self.driver.switch_to.window(handles[id]) # self.writer.write(self.writer.row, self.writer.clo, 'PASS') except Exception as e: # self.writer.write(self.writer.row, self.writer.clo, 'FAIL') # self.writer.write(self.writer.row, self.writer.clo + 1, e) logger.exception(e)
def getconfig(path): # 存放解析的数据 global config config.clear() dd = Confrw(path) data = dd.read() print(data) # 逐行便利数据 for s in data: if s.startswith("#"): continue if not s.find('=') > 0: logger.error('配置格式错误!' + str(s)) try: key = s[0:s.find('=')] value = s[s.find('=') + 1:s.__len__()] config[key] = value except Exception as e: logger.error('排位置文件格式错误,请重新配置' + str(s)) logger.exception(e) return config
def in_iframe(self, location): try: self.driver.switch_to_frame(location) except Exception as e: logger.exception(e)