Пример #1
0
def eyes_config_base():
    return (
        Configuration()
        .set_hide_scrollbars(True)
        .set_save_new_tests(False)
        .set_hide_caret(True)
    )
Пример #2
0
def test_rendering_ios_simulator(driver, batch_info, vg_runner):
    driver.get("http://applitools.github.io/demo")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Eyes SDK",
            test_name="UFG Mobile Web Happy Flow",
            batch=batch_info,
        )
        .add_browser(
            IosDeviceInfo(IosDeviceName.iPhone_XR, ScreenOrientation.LANDSCAPE)
        )
        .add_browser(
            IosDeviceInfo(IosDeviceName.iPhone_XR, ios_version=IosVersion.LATEST)
        )
        .add_browser(
            IosDeviceInfo(
                IosDeviceName.iPhone_XR, ios_version=IosVersion.ONE_VERSION_BACK
            )
        )
        .set_save_diffs(False)
        .set_save_new_tests(False)
    )
    eyes.open(driver, viewport_size=RectangleSize(800, 600))
    eyes.check_window()
    eyes.close_async()
    assert len(vg_runner.get_all_test_results()) == 3
Пример #3
0
def test_css_relative_url_on_another_domain(driver, eyes, batch_info,
                                            vg_runner):
    driver.get(
        "https://applitools.github.io/demo/TestPages/VisualGridTestPageWithRelativeBGImage/index.html"
    )
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            test_name="TestCssRelativeUrlOnAnotherDomain",
            app_name="Visual Grid Render Test",
            batch=batch_info,
        ).add_browser(1200, 800, BrowserType.CHROME).add_browser(
            700, 600, BrowserType.FIREFOX).add_browser(1200, 600,
                                                       BrowserType.FIREFOX).
        add_browser(1200, 600, BrowserType.EDGE).add_browser(
            1200, 600, BrowserType.IE_11).add_browser(
                1200, 600, BrowserType.IE_10).add_device_emulation(
                    DeviceName.iPhone_X,
                    ScreenOrientation.PORTRAIT).add_device_emulation(
                        DeviceName.Nexus_10,
                        ScreenOrientation.LANDSCAPE).add_device_emulation(
                            DeviceName.iPad))
    eyes.open(driver)
    eyes.check_window()
    eyes.close_async()
    all_results = vg_runner.get_all_test_results(False)
    assert len(all_results) == 9
def test_send_DOM_1_2(eyes, driver, batch_info, url, num):
    driver.get(url)
    config = Configuration().set_batch(batch_info)
    eyes.set_configuration(config)
    eyes.open(driver, "Test Send DOM", "TestSendDOM_" + num)
    eyes.check_window()
    results = eyes.close(False)
    assert get_has_DOM(eyes.api_key, results)
Пример #5
0
def test_vgdouble_close_no_check(driver, vg_runner, batch_info):
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(app_name="app", test_name="test", batch=batch_info))
    eyes.open(driver)
    with pytest.raises(TestFailedError) as e:
        eyes.close()
        assert "Eyes not open" in str(e)
Пример #6
0
def eyes_config_base():
    return (
        Configuration()
        .set_hide_scrollbars(True)
        .set_save_new_tests(False)
        .set_hide_caret(True)
        .set_parent_branch_name("master")
    )
Пример #7
0
def test_same_config_with_no_batch_with_multiple_eyes():
    conf = Configuration().set_app_name("boodleAI").set_test_name("Test 5")
    eyes1 = Eyes()
    eyes2 = Eyes()
    eyes1.set_configuration(conf)
    eyes2.set_configuration(conf)
    assert eyes1.configure.batch
    assert eyes2.configure.batch
    assert eyes1.configure.batch == eyes2.configure.batch
Пример #8
0
def test_VG_tests_count_4(eyes, batch_info, driver):
    config = (Configuration().set_batch(batch_info).set_app_name(
        "Test Count").set_test_name("Test_VGTestsCount_4"))
    eyes.set_configuration(config)
    eyes.open(driver)
    eyes.check("Test", Target.window())
    eyes.close()
    results_summary = eyes._runner.get_all_test_results()
    assert results_summary.size() == 1
Пример #9
0
def test_double_eyes_with_new_configuration():
    config = Configuration(test_name="Test1")
    eyes1 = Eyes()
    eyes2 = Eyes()
    eyes1.set_configuration(config)
    config.test_name = "Test2"
    eyes2.set_configuration(config)

    assert eyes1.configure.test_name == "Test1"
    assert eyes2.configure.test_name == "Test2"
Пример #10
0
def test_VG_tests_count_2(eyes, batch_info, driver):
    config = (Configuration().set_batch(batch_info).add_browser(
        900, 600, BrowserType.CHROME).add_browser(1024, 768,
                                                  BrowserType.CHROME))
    eyes.set_configuration(config)
    eyes.open(driver, "Test Count", "Test_VGTestsCount_2")
    eyes.check("Test", Target.window())
    eyes.close()
    results_summary = eyes._runner.get_all_test_results()
    assert results_summary.size() == 2
Пример #11
0
def test_eyes_runner(driver, runner):
    eyes = Eyes(runner)
    eyes2 = Eyes(runner)
    batch_info = BatchInfo("Runner Testing")
    config = (
        Configuration()
        .set_send_dom(True)
        .set_hide_scrollbars(True)
        .set_stitch_mode(StitchMode.CSS)
        .set_batch(batch_info)
    )
    eyes.set_configuration(config)
    eyes2.set_configuration(config)
    driver.get(
        "http://applitools.github.io/demo/TestPages/VisualGridTestPage/index.html"
    )
    eyes.add_property(
        "Runner", "VisualGrid" if isinstance(runner, VisualGridRunner) else "Selenium"
    )
    eyes.open(
        driver,
        "Applitools Eyes Java SDK",
        "Classic Runner Test",
        dict(width=1200, height=800),
    )
    eyes2.open(
        driver,
        "Applitools Eyes Java SDK",
        "Classic Runner 2 Test",
        dict(width=1200, height=800),
    )

    eyes.check("Step 1", Target.window().fully().ignore_displacements(False))
    eyes2.check("Step 1", Target.window().fully().ignore_displacements(False))

    eyes.close_async()

    eyes.open(
        driver,
        "Applitools Eyes Java SDK",
        "Classic Runner Test",
        dict(width=1200, height=800),
    )
    eyes.check("Step 2", Target.window().fully().ignore_displacements(False))
    eyes.close_async()
    eyes2.close(True)

    driver.quit()
    all_tests_results = runner.get_all_test_results()
    if len(all_tests_results.all_results) != 3:
        raise Exception
def test_svg_parsing(driver, eyes, batch_info, vg_runner):
    driver.get("https://danielschwartz85.github.io/static-test-page2/index.html")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            test_name="TestSvgParsing",
            app_name="Visual Grid Render Test",
            batch=batch_info,
        ).add_browser(1200, 800, BrowserType.CHROME)
    )
    eyes.open(driver)
    eyes.check_window()
    eyes.close_async()
    all_results = vg_runner.get_all_test_results(False)
def test_rendering_ios_simulator(driver, batch_info, vg_runner):
    driver.get("https://applitools.github.io/demo/TestPages/FramesTestPage/")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Visual Grid Render Test",
            test_name="TestRenderingIosSimulator",
            batch=batch_info,
        ).add_browser(IosDeviceInfo("iPhone 7")).add_browser(
            IosDeviceInfo("iPhone 11", "landscape")))
    eyes.open(driver)
    eyes.check_window()
    eyes.close_async()
    assert len(vg_runner.get_all_test_results()) == 2
def test_mobile_web_happy_flow(driver, batch_info, vg_runner):
    driver.get("https://applitools.github.io/demo")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Eyes SDK",
            test_name="UFG Mobile Web Happy Flow",
            batch=batch_info,
        ).add_browser(
            IosDeviceInfo(IosDeviceName.iPhone_12,
                          ScreenOrientation.LANDSCAPE)))
    eyes.open(driver, viewport_size=RectangleSize(800, 600))
    eyes.check_window()
    eyes.close()
def test_css_relative_url_on_another_domain(driver, eyes, batch_info, vg_runner):
    driver.get(
        "https://applitools.github.io/demo/TestPages/VisualGridTestPageWithRelativeBGImage/index.html"
    )
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            test_name="TestCssRelativeUrlOnAnotherDomain",
            app_name="Visual Grid Render Test",
            batch=batch_info,
        ).add_browser(1200, 800, BrowserType.CHROME)
    )
    eyes.open(driver)
    eyes.check_window()
    eyes.close_async()
    all_results = vg_runner.get_all_test_results()
def test_visual_viewport(driver, batch_info, vg_runner):
    driver.get("https://applitools.github.io/demo/TestPages/FramesTestPage/")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Visual Grid Render Test",
            test_name="TestVisualViewport",
            batch=batch_info,
        ).add_browser(IosDeviceInfo("iPhone 7")))
    eyes.open(driver)
    with patch("applitools.core.server_connector.ServerConnector.match_window",
               ) as patched:
        eyes.check_window()
        eyes.close(False)
        app_output = patched.call_args.args[1].app_output
        assert isinstance(app_output.viewport, RectangleSize)
def test_not_send_DOM(eyes, driver, batch_info):
    driver.get("https://applitools.com/helloworld")
    config = Configuration().set_batch(batch_info).set_send_dom(False)
    eyes.set_configuration(config)
    eyes.open(
        driver,
        "Test NOT SendDom",
        "Test NOT SendDom",
        viewport_size={
            "width": 1000,
            "height": 700
        },
    )
    eyes.check("window", Target.window().send_dom(False))
    results = eyes.close(False)
    assert not get_has_DOM(eyes.api_key, results)
def test_special_rendering(url, test_name, batch_info, driver):
    runner = VisualGridRunner(30)
    eyes = Eyes(runner)
    sconf = Configuration(
        test_name=test_name, app_name="Visual Grid Render Test", batch=batch_info
    )
    sconf.add_device_emulation(DeviceName.Galaxy_S5)
    sconf.add_browser(1200, 800, BrowserType.CHROME)
    sconf.add_browser(1200, 800, BrowserType.FIREFOX)

    eyes.set_configuration(sconf)
    eyes.open(driver)
    driver.get(url)
    datetime_utils.sleep(500)
    eyes.check(test_name, Target.window().fully())
    eyes.close(False)
    all_results = runner.get_all_test_results(False)
Пример #19
0
def sel_config(test_page_url):
    conf = Configuration()
    conf.test_name = "Top 10 websites - {}".format(test_page_url)
    conf.app_name = "Top Ten Sites"
    conf.branch_name = "TTS - config branch"
    conf.add_browser(800, 600, BrowserType.CHROME)
    conf.add_browser(700, 500, BrowserType.FIREFOX)
    # conf.add_browser(700, 500, BrowserType.IE_10)
    # conf.add_browser(700, 500, BrowserType.IE_11)
    conf.add_browser(1600, 1200, BrowserType.CHROME)
    conf.add_browser(1200, 800, BrowserType.EDGE)
    conf.add_browser(800, 600, BrowserType.CHROME)
    conf.add_browser(700, 500, BrowserType.CHROME)
    conf.add_device_emulation(DeviceName.iPhone_4)
    conf.add_device_emulation(DeviceName.iPhone_X)
    conf.add_device_emulation(DeviceName.Nexus_10, ScreenOrientation.LANDSCAPE)
    return conf
Пример #20
0
def test_visual_viewport(driver, batch_info, vg_runner, fake_connector_class):
    driver.get("https://applitools.github.io/demo/TestPages/FramesTestPage/")
    eyes = Eyes(vg_runner)
    eyes.server_connector = fake_connector_class()
    eyes.set_configuration(
        Configuration(
            app_name="Visual Grid Render Test",
            test_name="TestVisualViewport",
            batch=batch_info,
        ).add_browser(IosDeviceInfo("iPhone 7"))
    )
    eyes.open(driver)
    eyes.check_window()
    eyes.close(False)
    running_test = vg_runner._get_all_running_tests()[0]
    _, match_data = running_test.eyes.server_connector.input_calls["match_window"][0]
    assert isinstance(match_data.app_output.viewport, RectangleSize)
def test_send_DOM_Selector(eyes, driver, batch_info):
    driver.get(
        "https://applitools.github.io/demo/TestPages/DomTest/dom_capture.html")
    config = Configuration().set_batch(batch_info)
    eyes.set_configuration(config)
    eyes.open(
        driver,
        "Test SendDom",
        "Test SendDom",
        viewport_size={
            "width": 1000,
            "height": 700
        },
    )
    eyes.check("region", Target.region("#scroll1"))
    results = eyes.close(False)
    assert get_has_DOM(eyes.api_key, results)
Пример #22
0
def test_inferred_layout_breakpoints_with_small_devices(driver, batch_info, vg_runner):
    driver.get("https://applitools.github.io/demo/TestPages/JsLayout")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Eyes SDK",
            test_name="UFG Layout Breakpoints inferred small screen device",
            batch=batch_info,
        )
        .add_browser(
            IosDeviceInfo(IosDeviceName.iPhone_12, ScreenOrientation.LANDSCAPE)
        )
        .add_browser(IosDeviceInfo(IosDeviceName.iPhone_12, ScreenOrientation.PORTRAIT))
        .add_browser(1024, 768, BrowserType.CHROME)
        .set_layout_breakpoints(True)
    )
    eyes.open(driver, viewport_size=RectangleSize(800, 600))
    eyes.check_window()
    eyes.close()
Пример #23
0
def test_inferred_layout_breakpoints(driver, batch_info, vg_runner):
    driver.get("https://applitools.github.io/demo/TestPages/JsLayout")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            app_name="Eyes SDK",
            test_name="UFG Layout Breakpoints inferred chrome",
            batch=batch_info,
        )
        .add_browser(500, 400, BrowserType.CHROME)
        .add_browser(800, 400, BrowserType.CHROME)
        .add_browser(800, 600, BrowserType.CHROME)
        .add_browser(1024, 768, BrowserType.CHROME)
        .add_browser(1200, 800, BrowserType.CHROME)
        .set_layout_breakpoints(True)
    )
    eyes.open(driver, viewport_size=RectangleSize(800, 600))
    eyes.check_window()
    eyes.close()
def test_mobile_only(driver, batch_info):
    runner = VisualGridRunner(30)
    eyes = Eyes(runner)

    sconf = Configuration()
    sconf.test_name = "Mobile Render Test"
    sconf.app_name = "Visual Grid Render Test"
    sconf.batch = batch_info

    sconf.add_device_emulation(DeviceName.Galaxy_S5)

    eyes.set_configuration(sconf)
    eyes.open(driver)
    driver.get(
        "https://applitools.github.io/demo/TestPages/DynamicResolution/mobile.html"
    )
    eyes.check("Test Mobile Only", Target.window().fully())
    eyes.close()
    all_results = runner.get_all_test_results()
Пример #25
0
def test_vgwith_bad_webhook(vg_runner, driver):
    eyes = Eyes(vg_runner)
    eyes.configuration = Configuration(
        app_name="Visual Grid Python Tests",
        test_name="Bad Webhook",
        viewport_size=RectangleSize(800, 600),
    )

    eyes.open(driver)
    eyes.check(
        "",
        Target.window().fully().before_render_screenshot_hook(
            "gibberish uncompilable java script"),
    )
    with pytest.raises(EyesError) as e:
        eyes.close()
        vg_runner.get_all_test_results()

    assert e
    assert "failed to run before_capture_screenshot hook script" in str(e)
Пример #26
0
def test_send_dom_cors_iframe(dom_intercepting_eyes, driver, batch_info,
                              expected_json, caplog):
    del expected_json["scriptVersion"]
    config = (
        Configuration().set_batch(batch_info).set_app_name("Test Send DOM").
        set_test_name("test_send_dom_cors_iframe").set_viewport_size(
            RectangleSize(1024, 768))
        # TODO: Remove this when default options get in sync for java and python SDK
        .set_hide_scrollbars(True))
    dom_intercepting_eyes.set_configuration(config)

    driver.get("https://applitools.github.io/demo/TestPages/CorsTestPage")
    dom_intercepting_eyes.open(driver, "Test Send DOM",
                               "test_send_dom_cors_iframe")
    dom_intercepting_eyes.check("Window", Target.window().fully())
    dom_intercepting_eyes.close(False)
    actual = json.loads(dom_intercepting_eyes.captured_dom_json)

    del actual["scriptVersion"]
    assert check_objects(actual, expected_json)
    assert "ERROR" not in caplog.text
def test_disable_browser_fetching_combinations():
    from applitools.selenium import Configuration, Target
    from applitools.selenium.visual_grid import VisualGridEyes

    effective_option = VisualGridEyes._effective_disable_browser_fetching
    cfg = Configuration()
    assert effective_option(cfg, Target.window()) is False
    assert effective_option(cfg,
                            Target.window().disable_browser_fetching()) is True
    assert effective_option(
        cfg,
        Target.window().disable_browser_fetching(True)) is True
    assert (effective_option(cfg,
                             Target.window().disable_browser_fetching(False))
            is False)

    cfg.set_disable_browser_fetching(False)

    assert effective_option(cfg, Target.window()) is False
    assert effective_option(cfg,
                            Target.window().disable_browser_fetching()) is True
    assert effective_option(
        cfg,
        Target.window().disable_browser_fetching(True)) is True
    assert (effective_option(cfg,
                             Target.window().disable_browser_fetching(False))
            is False)

    cfg.set_disable_browser_fetching(True)

    assert effective_option(cfg, Target.window()) is True
    assert effective_option(cfg,
                            Target.window().disable_browser_fetching()) is True
    assert effective_option(
        cfg,
        Target.window().disable_browser_fetching(True)) is True
    assert (effective_option(cfg,
                             Target.window().disable_browser_fetching(False))
            is False)
Пример #28
0
def test_check_element_and_window_in_sequence(driver, eyes, batch_info,
                                              vg_runner):
    driver.get("https://demo.applitools.com")
    eyes = Eyes(vg_runner)
    eyes.set_configuration(
        Configuration(
            test_name="TestCheckElementAndWindow",
            app_name="Visual Grid Additional Test",
            batch=batch_info,
        ).add_browser(1024, 768, BrowserType.CHROME))
    eyes.open(driver)
    eyes.check_window("Step 1")
    eyes.check(
        "Step 2",
        Target.region("body > div > div").layout(
            "body > div > div > form > div:nth-child(1)"),
    )
    eyes.check(
        "Step 3",
        Target.window().ignore("body > div > div > form > div:nth-child(1)"),
    )
    eyes.close_async()
    trc = vg_runner.get_all_test_results().all_results[0]
    session_results = get_session_results(eyes.api_key, trc.test_results)
    actual_output = session_results["actualAppOutput"]
    assert len(actual_output[1]["imageMatchSettings"]["layout"]) == 1
    assert actual_output[1]["imageMatchSettings"]["layout"][0] == {
        "left": 80,
        "top": 322,
        "width": 290,
        "height": 62,
    }
    assert len(actual_output[2]["imageMatchSettings"]["ignore"]) == 1
    assert actual_output[2]["imageMatchSettings"]["ignore"][0] == {
        "left": 367,
        "top": 322,
        "width": 290,
        "height": 62,
    }
Пример #29
0
def test_timeout2(driver, vg_runner, batch_info):
    visual_grid_eyes.DOM_EXTRACTION_TIMEOUT = 1
    eyes = Eyes(vg_runner)
    driver.get("https://applitools.com/helloworld")
    conf = Configuration(batch=batch_info,
                         app_name="Test Timeouts",
                         test_name="Test Timeouts")
    conf.add_browser(800, 600, BrowserType.CHROME)
    conf.add_browser(700, 500, BrowserType.FIREFOX)
    conf.add_browser(600, 400, BrowserType.EDGE)
    conf.add_browser(900, 700, BrowserType.IE_10)
    conf.add_browser(1000, 800, BrowserType.IE_11)
    conf.add_device_emulation(DeviceName.Galaxy_S5)
    conf.add_device_emulation(DeviceName.iPhone6_7_8_Plus)
    conf.add_device_emulation(DeviceName.Laptop_with_HiDPI_screen)
    eyes.configuration = conf
    eyes.open(driver)

    with pytest.raises(EyesError) as e:
        eyes.check("", Target.window().with_name("Test"))
        eyes.close()
        vg_runner.get_all_test_results()
        assert "Domsnapshot Timed out" in str(e)
def initialize_eyes(runner):
    eyes = Eyes(runner)
    # Set API key
    eyes.api_key = "YOU API KEY"

    # If dedicated or on-prem cloud, uncomment and enter the cloud url
    # Default: https://eyes.applitools.com
    # eyes.server_url = "https://testeyes.applitools.com"

    # Create SeleniumConfiguration.
    sconf = Configuration()

    # Set the AUT name
    sconf.app_name = "Blank App"

    # Set a test name
    sconf.test_name = "Smoke Test via Visual Grid"

    #  Set a batch name so all the different browser and mobile combinations are
    #  part of the same batch
    sconf.batch = BatchInfo("VIP Browser combo batch")

    # Add Chrome browsers with different Viewports
    sconf.add_browser(800, 600, BrowserType.CHROME)
    sconf.add_browser(700, 500, BrowserType.CHROME)

    # Add Firefox browser with different Viewports
    sconf.add_browser(1200, 800, BrowserType.FIREFOX)
    sconf.add_browser(1600, 1200, BrowserType.FIREFOX)

    # Add iPhone 4 device emulation
    sconf.add_device_emulation(DeviceName.iPhone_4)

    # Set the configuration object to eyes
    eyes.configuration = sconf
    return eyes