def get_element_attribute(self, loc, attr_name, img_doc, timeout=30, frequency=0.5): """ 等待元素存在、查找元素、再获取元素的某个属性值。 :param loc: 元组形式的元素定位表达 :param attr_name: 要获取的 元素的属性名称 :param img_doc: 失败截图的文件命名 :param timeout: 等待元素存在的超时上限。 :param frequency: 等待元素存在时的,轮询周期。 :return: 元素的属性值。 """ # 等待元素存在 #self.wait_eleExists(loc,img_doc,timeout,frequency) # 查找元素 ele = self.get_element(loc, img_doc) # 获取属性 try: attr_value = ele.get_attribute(attr_name) except: # 日志 logError("获取元素属性失败") # 截图 #self.save_web_screenshot(img_doc) raise else: logInfo("获取元素 {} 的属性 {} 值为:{}".format(loc, attr_name, attr_value)) return attr_value
def get_element(self, loc, img_doc=''): logInfo('查找{}中的元素{}'.format(img_doc, loc)) try: element = self._webdriver.find_element(*loc) return element except: # 日志 logError('查找元素失败')
def input_text(self, loc, img_doc, *args, timeout=30, frequency=0.5): ''' 输入文本信息 ''' element = self.get_element(loc, img_doc) logInfo(" 给元素 {} 输入文本内容:{}".format(loc, args)) try: element.send_keys(*args) except: #日志 #截图 raise
def __init__(self, brower_type='chrome'): ''' 默认为Chrome浏览器,输错为Chrome浏览器。config配置文件可配置浏览器路径,以及浏览器驱动路径。 brower_type: chrome -> 谷歌浏览器 firefox -> 火狐浏览器 ie -> ie浏览器 ''' logInfo('浏览器构造方法') #self._webdriver = None self._webdriver = webdriver.Chrome.__new__(webdriver.Chrome) #(self._webdriver).__class__ = webdriver.Chrome # 判断是否初始化为空字符串 if brower_type.isspace() != True and len(brower_type) != 0: self.open_brower(brower_type)
def click_element(self, loc, img_doc, *args, timeout=30, firequency=0.5): ''' 点击元素 ''' # 1.等待元素 # 2.找元素 element = self.get_element(loc, img_doc) logInfo(" 点击元素 {}".format(loc)) # 3.操作 try: element.click() except: logError('点击元素失败') # 截图 raise
def open_brower(self, brower_type): ''' 默认为Chrome浏览器,输错为Chrome浏览器。 brower_type: chrome -> 谷歌浏览器 firefox -> 火狐浏览器 ie -> ie浏览器 ''' logInfo('调用浏览器') brower_type = str(brower_type) if 'chrome' in brower_type or '谷歌' in brower_type: brower_type = '1' elif 'fire' in brower_type or '火狐' in brower_type: brower_type = '2' elif 'ie' in brower_type: brower_type = '3' else: brower_type = '1' #通过配置文件获取浏览器exe的路径 borwer_path = self.get_config('webdriver', 'borwer_path') #通过配置文件获取webdriver的路径 driver_path = self.get_config('webdriver', 'borwer_webdriverpath') if borwer_path: options = webdriver.ChromeOptions() #options.binary_location = 'E:\\Program\\ChromeMaYi\\guge\\chrome.exe' # 设置浏览器路径 options.binary_location = borwer_path try: if brower_type == '1': logInfo('初始化谷歌浏览器') if borwer_path and driver_path: self._webdriver = webdriver.Chrome( executable_path=borwer_path, options=options) elif driver_path: self._webdriver = webdriver.Chrome( executable_path=driver_path) else: self._webdriver = webdriver.Chrome() #self.get_url('http://122.225.207.133:20001') elif brower_type == '2': logInfo('初始化火狐浏览器') elif brower_type == '3': logInfo('初始化ie浏览器') else: logInfo('未初始化浏览器') except Exception as err: logError(f'初始化浏览器失败,原因:{err}') #traceback.print_exc() #直接打印异常 logError(traceback.format_exc()) #返回字符串 # raise Exception(print('se')) raise '浏览器初始化失败,手动抛异常,看上面异常信息。' logInfo('初始化函数结尾') return self._webdriver