def click(step): element = step['element'] if isinstance(element, str): element_location = locating_element(element, 'CLICK') if element_location: element_location.click() elif isinstance(element, list): for _e in element: element_location = locating_element(_e, 'CLICK') element_location.click() sleep(0.5) sleep(0.5) # 获取元素其他属性 output = step['output'] for key in output: if output[key] == 'text': g.var[key] = element_location.text elif output[key] in ('text…', 'text...'): if element_location.text.endswith('...'): g.var[key] = element_location.text[:-3] else: g.var[key] = element_location.text else: g.var[key] = element_location.get_attribute(output[key]) # 判断是否打开了新的窗口,并将新窗口添加到所有窗口列表里 all_handles = g.driver.window_handles for handle in all_handles: if handle not in w.windows.values(): w.register(step, handle)
def open(step): element = step['element'] value = e.get(element)[1] if step['data'].get('清理缓存', '') or step['data'].get('clear', ''): g.driver.delete_all_cookies() if step['data'].get('打开方式', '') == '新标签页' or step['data'].get('mode', '').lower() == 'tab': js = "window.open('%s')" % value g.driver.execute_script(js) # 判断是否打开了新的窗口,并将新窗口添加到所有窗口列表里 all_handles = g.driver.window_handles for handle in all_handles: if handle not in w.windows.values(): w.register(step, handle) else: if step['data'].get('打开方式', '') == '新浏览器' or step['data'].get('mode', '').lower() == 'browser': w.close() g.set_driver() w.init() g.driver.get(value) w.open(step) cookie = step['data'].get('cookie', '') if cookie: g.driver.add_cookie(json2dict(cookie)) co = g.driver.get_cookie(json2dict(cookie).get('name', '')) logger.info(f'cookie is add: {co}') sleep(0.5)
def click(step): element = step['element'] data = step['data'] if isinstance(element, str): element_location = locating_element(element, 'CLICK') if element_location: try: element_location.click() except ElementClickInterceptedException: # 如果元素为不可点击状态,则等待1秒,再重试一次 sleep(1) if data.get('mode'): g.driver.execute_script("arguments[0].click();", element_location) else: element_location.click() elif isinstance(element, list): for _e in element: element_location = locating_element(_e, 'CLICK') try: element_location.click() except ElementClickInterceptedException: # 如果元素为不可点击状态,则等待1秒,再重试一次 sleep(1) if data.get('mode'): g.driver.execute_script("arguments[0].click();", element_location) else: element_location.click() sleep(0.5) sleep(0.5) # 获取元素其他属性 output = step['output'] for key in output: if output[key] == 'text': g.var[key] = element_location.text elif output[key] in ('text…', 'text...'): if element_location.text.endswith('...'): g.var[key] = element_location.text[:-3] else: g.var[key] = element_location.text else: g.var[key] = element_location.get_attribute(output[key]) # 判断是否打开了新的窗口,并将新窗口添加到所有窗口列表里 all_handles = g.driver.window_handles for handle in all_handles: if handle not in w.windows.values(): w.register(step, handle) return element_location
def open(step): element = step['element'] el, value = e.get(element) if step['data'].get('清理缓存', '') or step['data'].get('cookie', ''): g.driver.delete_all_cookies() if step['data'].get('打开方式', '') == '新标签页' or step['data'].get('mode', '').lower() == 'tab': js = "window.open('%s')" % value g.driver.execute_script(js) # 判断是否打开了新的窗口,并将新窗口添加到所有窗口列表里 all_handles = g.driver.window_handles for handle in all_handles: if handle not in w.windows.values(): w.register(step, handle) else: if step['data'].get('打开方式', '') == '新浏览器' or step['data'].get('mode', '').lower() == 'browser': w.close() g.set_driver() w.init() g.driver.get(value) w.open(step) sleep(0.5)