def _screenshot(self, webdriver, url, timeout): webdriver.get(url) webdriver.execute_async_script(self.wait_script) screenshot = webdriver.get_screenshot_as_base64() # strip off the data:img/png, part of the url if screenshot.startswith("data:image/png;base64,"): screenshot = screenshot.split(",", 1)[1] return screenshot
def do_testharness(self, webdriver, url, timeout): return webdriver.execute_async_script( self.script % {"abs_url": url, "url": strip_server(url), "window_id": self.window_id, "timeout_multiplier": self.timeout_multiplier, "timeout": timeout * 1000})
def do_testharness(self, webdriver, url, timeout): return webdriver.execute_async_script( self.script % { "abs_url": url, "url": strip_server(url), "window_id": self.window_id, "timeout_multiplier": self.timeout_multiplier, "timeout": timeout * 1000 })
def do_testharness(self, webdriver, url, timeout): format_map = { "abs_url": url, "url": strip_server(url), "window_id": self.window_id, "timeout_multiplier": self.timeout_multiplier, "timeout": timeout * 1000 } parent = webdriver.current_window_handle handles = [item for item in webdriver.window_handles if item != parent] for handle in handles: try: webdriver.switch_to_window(handle) webdriver.close() except exceptions.NoSuchWindowException: pass webdriver.switch_to_window(parent) webdriver.execute_script(self.script % format_map) try: # Try this, it's in Level 1 but nothing supports it yet win_s = webdriver.execute_script("return window['%s'];" % self.window_id) win_obj = json.loads(win_s) test_window = win_obj["window-fcc6-11e5-b4f8-330a88ab9d7f"] except Exception: after = webdriver.window_handles if len(after) == 2: test_window = next(iter(set(after) - set([parent]))) elif after[0] == parent and len(after) > 2: # Hope the first one here is the test window test_window = after[1] else: raise Exception("unable to find test window") assert test_window != parent handler = CallbackHandler(webdriver, test_window, self.logger) while True: result = webdriver.execute_async_script(self.script_resume % format_map) done, rv = handler(result) if done: break return rv
def do_testharness(self, webdriver, url, timeout): format_map = {"abs_url": url, "url": strip_server(url), "window_id": self.window_id, "timeout_multiplier": self.timeout_multiplier, "timeout": timeout * 1000} parent = webdriver.current_window_handle handles = [item for item in webdriver.window_handles if item != parent] for handle in handles: try: webdriver.switch_to_window(handle) webdriver.close() except exceptions.NoSuchWindowException: pass webdriver.switch_to_window(parent) webdriver.execute_script(self.script % format_map) try: # Try this, it's in Level 1 but nothing supports it yet win_s = webdriver.execute_script("return window['%s'];" % self.window_id) win_obj = json.loads(win_s) test_window = win_obj["window-fcc6-11e5-b4f8-330a88ab9d7f"] except: after = webdriver.window_handles if len(after) == 2: test_window = next(iter(set(after) - set([parent]))) elif after[0] == parent and len(after) > 2: # Hope the first one here is the test window test_window = after[1] else: raise Exception("unable to find test window") assert test_window != parent handler = CallbackHandler(webdriver, test_window, self.logger) while True: result = webdriver.execute_async_script( self.script_resume % format_map) done, rv = handler(result) if done: break return rv