def test_create_dom_snapshot_disable_cross_origin_rendering(driver): driver = EyesWebDriver(driver, None) driver.get("https://applitools.github.io/demo/TestPages/CorsTestPage/") dom = create_dom_snapshot(driver, False, [], 10000, False) assert len(dom["frames"][0]["frames"]) == 0
def test_create_dom_snapshot_with_cors_iframe(driver): driver = EyesWebDriver(driver, None) driver.get("https://applitools.github.io/demo/TestPages/CorsTestPage/") dom = create_dom_snapshot(driver, False, [], 10000, True) assert len(dom["frames"][0]["crossFrames"]) == 1 assert dom["frames"][0]["crossFrames"][0]["index"] == 16 assert "selector" in dom["frames"][0]["crossFrames"][0]
def test_create_dom_snapshot_has_cors_iframe_data(driver): driver = EyesWebDriver(driver, None) driver.get("https://applitools.github.io/demo/TestPages/CorsTestPage/") dom = create_dom_snapshot(driver, False, [], 10000, True) assert len(dom["frames"][0]["frames"]) == 1 assert (dom["frames"][0]["frames"][0]["url"] == "https://afternoon-savannah-68940.herokuapp.com/#")
def test_create_dom_snapshot_ie(mocked_create_dom_snapshot_loop): driver = mock.MagicMock() driver.user_agent.is_internet_explorer = True create_dom_snapshot(driver, False, [], 1, True) calls = mocked_create_dom_snapshot_loop.call_args_list assert calls == [ mock.call( mock.ANY, mock.ANY, 1000, 52428800, dont_fetch_resources=False, skip_resources=[], serialize_resources=True, ) ] assert type(calls[0].args[0]) is DomSnapshotScriptForIE
def test_create_dom_snapshot_ios(mocked_create_dom_snapshot_loop): driver = mock.MagicMock() driver.user_agent.is_internet_explorer = False driver.desired_capabilities = {"platformName": "ios"} create_dom_snapshot(driver, True, [], 1, True) calls = mocked_create_dom_snapshot_loop.call_args_list assert calls == [ mock.call( mock.ANY, mock.ANY, 1000, 10485760, dont_fetch_resources=True, skip_resources=[], serialize_resources=True, ) ] assert type(calls[0].args[0]) is DomSnapshotScriptGeneric
def test_create_dom_snapshot_generic(mocked_create_dom_snapshot_loop): driver = mock.MagicMock() driver.user_agent.is_internet_explorer = False with mock.patch.object(dom_snapshot_script, "time", return_value=1.0) as time_mock: create_dom_snapshot(driver, True, [""], 1, True) calls = mocked_create_dom_snapshot_loop.call_args_list assert calls == [ mock.call( mock.ANY, 1.001, 1000, 52428800, dont_fetch_resources=True, skip_resources=[""], serialize_resources=True, ) ] assert type(calls[0].args[0]) is DomSnapshotScriptGeneric
def get_script_result(self, dont_fetch_resources): # type: (bool) -> Dict logger.debug("get_script_result(dont_fetch_resources={})".format( dont_fetch_resources)) try: return dom_snapshot_script.create_dom_snapshot( self.driver, dont_fetch_resources, None, DOM_EXTRACTION_TIMEOUT, self.configure.enable_cross_origin_rendering, ) except dom_snapshot_script.DomSnapshotFailure as e: raise_from(EyesError("Failed to capture dom snapshot"), e)
def test_create_dom_snapshot_retries_on_single_failure(driver, monkeypatch): create_dom_snapshot_loop = dom_snapshot_script.create_dom_snapshot_loop def failing_once_loop(*args, **kwargs): failing_once_loop.call_count += 1 if failing_once_loop.call_count == 2: raise Exception else: return create_dom_snapshot_loop(*args, **kwargs) failing_once_loop.call_count = 0 monkeypatch.setattr( dom_snapshot_script, "create_dom_snapshot_loop", failing_once_loop ) driver = EyesWebDriver(driver, None) driver.get("https://applitools.github.io/demo/TestPages/CorsTestPage/") dom = create_dom_snapshot(driver, False, [], 1000000, True) assert len(dom["frames"][0]["crossFrames"]) == 1 assert dom["frames"][0]["crossFrames"][0]["index"] == 16 assert "selector" in dom["frames"][0]["crossFrames"][0]