def test_robot_eyes_agent_id_setup(appium_library, selenium_library):
    eyes = Eyes(RobotMobileNativeRunner())
    assert eyes.full_agent_id.startswith("eyes.python.robotframework.appium/")

    eyes = Eyes(RobotWebRunner())
    assert eyes.full_agent_id.startswith(
        "eyes.python.robotframework.selenium/")

    eyes = Eyes(RobotWebUFGRunner())
    assert eyes.full_agent_id.startswith(
        "eyes.python.robotframework.visual_grid/")
Beispiel #2
0
def test_config_overwriting(eyes):
    eyes.host_app = "Host1"
    eyes2 = Eyes()
    eyes2.host_app = "Host2"
    assert eyes.host_app != eyes2.host_app
    assert eyes.configure.host_app != eyes2.configure.host_app

    eyes.configure.host_app = "Other Host1"
    eyes2.configure.host_app = "Other Host2"
    assert eyes.host_app != eyes2.host_app
    assert eyes.configure.host_app != eyes2.configure.host_app
Beispiel #3
0
def eyes_setup(runner, batch_info):
    """
    Basic Eyes setup. It'll abort test if wasn't closed properly.
    """
    eyes = Eyes(runner)
    # Initialize the eyes SDK and set your private API key.
    eyes.api_key = 'APPLITOOLS_API_KEY'
    eyes.configure.batch = batch_info
    yield eyes
    # If the test was aborted before eyes.close was called, ends the test as aborted.
    eyes.abort_if_not_closed()
Beispiel #4
0
def test_timeout(driver, vg_runner, batch_info):
    eyes = Eyes(vg_runner)
    driver.get("https://applitools.com/helloworld")
    eyes.batch = batch_info
    eyes.open(driver, "Timeout Test", "Visual Grid Timeout Test",
              RectangleSize(1200, 800))
    eyes.check("", Target.window().with_name("Test"))
    eyes.close()
    vg_runner.get_all_test_results()
 def setUp(self):
     self.eyes = Eyes()
     self.eyes.api_key = os.environ.get("APPLITOOLS_API_KEY")
     batch = BatchInfo("Hackathon")
     batch.id_ = '666'
     self.eyes.batch = batch
     super().setUp()
     self.eyes.open(
         self.driver,
         "Hackathon",
         self._testMethodName,
         {"width": self.BROWSER_WIDTH, "height": self.BROWSER_HEIGHT},
     )
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
Beispiel #7
0
def eyes_vg(vg_runner, sel_config, batch_info, driver, request, test_page_url):
    app_name = request.node.get_closest_marker("app_name")
    if app_name:
        app_name = app_name.args[0]
    test_name = request.node.get_closest_marker("test_name")
    if test_name:
        test_name = test_name.args[0]
    viewport_size = request.node.get_closest_marker("viewport_size")
    if viewport_size:
        viewport_size = viewport_size.args[0]
    else:
        viewport_size = None

    eyes = Eyes(vg_runner)
    eyes.server_url = "https://eyes.applitools.com/"
    eyes.configuration = sel_config
    eyes.configuration.batch = batch_info
    app_name = app_name or eyes.configuration.app_name
    test_name = test_name or eyes.configuration.test_name
    viewport_size = viewport_size or eyes.configuration.viewport_size

    driver.get(test_page_url)
    eyes.open(driver, app_name, test_name, viewport_size)
    yield eyes
    logger.debug("closing WebDriver for url {}".format(test_page_url))
    eyes.close()
Beispiel #8
0
def test_ufg_options(driver):
    runner = VisualGridRunner(1)
    eyes = Eyes(runner)

    (eyes.configure.add_browser(800, 600,
                                BrowserType.CHROME).set_visual_grid_options(
                                    VisualGridOption("option1", "value1"),
                                    VisualGridOption("option2", False)))

    driver.get("https://google.com")
    with patch("applitools.core.server_connector.ServerConnector.render"
               ) as patched:
        eyes.open(driver, "Mock app", "Mock Test")
        eyes.check(
            "",
            Target.window().visual_grid_options(
                VisualGridOption("option3", "value3"),
                VisualGridOption("option4", 5),
                VisualGridOption("option1", 5),
            ),
        )
        eyes.close_async()
        res = runner.get_all_test_results()

        request_options = patched.call_args.args[0].options
        assert request_options == {
            "option1": 5,
            "option2": False,
            "option3": "value3",
            "option4": 5,
        }
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)
Beispiel #10
0
def test_abort_eyes(vg_runner, driver):
    eyes = Eyes(vg_runner)
    eyes.configuration.add_browser(800, 600, BrowserType.CHROME)
    driver.get("https://demo.applitools.com")
    eyes.open(driver, "Python VisualGrid", "TestAbortVGEyes")
    eyes.check_window()
    eyes.abort()
def test_VG_RCA_fluent(driver, vg_runner):
    eyes = Eyes(vg_runner)
    eyes.batch = batch_info
    driver.get(
        "https://applitools.github.io/demo/TestPages/VisualGridTestPage")
    driver.switch_to.frame("iframe")
    WebDriverWait(driver, 30)
    driver.switch_to.default_content()

    eyes.open(driver, "Test Visual Grid", "Test RCA Fluent")
    eyes.send_dom = True
    eyes.check("", Target.window().send_dom(True))
    eyes.close()
    vg_runner.get_all_test_results()
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()
Beispiel #13
0
def eyes_setup(runner, batch_info,request):
    eyes = Eyes(runner)
    eyes.configure.set_api_key("lqtaza1033ohKy9w9owjrKp3e2DkqJW0g75gqGJPZh107Qs110")
    eyes.configure.batch = batch_info
    if request.config.getoption("--eyes-mode")=='fast':
        (
        eyes.configure.add_browser(1600, 1200, BrowserType.CHROME)
        .add_browser(1600, 1200, BrowserType.FIREFOX)
        .add_browser(1600, 1200, BrowserType.IE_11)
        .add_browser(1600, 1200, BrowserType.EDGE_LEGACY)
        .add_browser(1600, 1200, BrowserType.SAFARI)
        )
    #eyes.configure.set_force_full_page_screenshot(True)
    yield eyes
    eyes.abort_if_not_closed()
def test_eyes_none_runner(driver):
    eyes = Eyes(None)
    eyes.configure.hide_scrollbars = True
    driver.get("https://applitools.github.io/demo/TestPages/FramesTestPage/")
    eyes.open(driver, "Eyes Selenium SDK - Null Runner",
              "TestSeleniumEyesWithNullRunner")
    eyes.check_window()
    eyes.close(False)
Beispiel #15
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)
Beispiel #16
0
class ChromeSetupAI(object):
    """
    run the tests in UserStoryTests in Chrome
    """
    eyes = Eyes()
    os.environ[
        'APPLITOOLS_API_KEY'] = '9HUjLRImIJJ108H0eSoRYU5lYUxa7UoKjWqmdx9k89jpk110'
    eyes.api_key = os.environ['APPLITOOLS_API_KEY']

    def setUp(self):
        self.driver = webdriver.Chrome(
            executable_path='./TraditionalTestFramework/Drivers/chromedriver')
        self.driver.get(self.url)
        self.driver.set_window_size(1680, 800)
        self.driver.set_script_timeout(1)

    def setBatching(self, value):
        b = BatchInfo(value)
        b.id_ = value
        self.eyes.batch = b
        self.eyes.open(self.driver, "Test app", value, {
            'width': 1680,
            'height': 800
        })
        self.eyes.force_full_page_screenshot = True
        self.eyes.use_css_transition = True

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
        self.eyes.close()
Beispiel #17
0
class Table_Sort_Test:
    eyes = Eyes()
    eyes.api_key = TestData.API_KEY

    try:
        driver = webdriver.Chrome()
        eyes.open(driver, TestData.APP_NAME, "Table Sort", TestData.VIEW_PORT)
        batch = BatchInfo('Data Driven Test')
        driver.get(TestData.BASE_URL)

        btnlogin = driver.find_element(By.XPATH, '//*[@id="log-in"]')
        txtusername = driver.find_element(By.ID, 'username')
        txtpassword = driver.find_element(By.ID, 'password')

        txtusername.clear()
        txtusername.send_keys(TestData.USERNAME)
        txtpassword.clear()
        txtpassword.send_keys(TestData.PASSWORD)
        btnlogin.click()
        driver.execute_script(
            "window.scrollTo(0, document.body.scrollHeight);")
        eyes.check_window('Validate values before sorting Amount column', 10)
        amount = driver.find_element(By.ID, 'amount')
        amount.click()
        eyes.check_window('Validate amount column after sorting', 10)
        eyes.close()

    finally:
        driver.quit()
        eyes.abort()
Beispiel #18
0
class CanvasChart:
    eyes = Eyes()
    eyes.api_key = TestData.API_KEY

    try:
        driver = webdriver.Chrome()
        eyes.open(driver, TestData.APP_NAME, "Canvas Chart",
                  TestData.VIEW_PORT)
        batch = BatchInfo('Canvas Chart Test')

        driver.get(TestData.BASE_URL)

        btnlogin = driver.find_element(By.XPATH, '//*[@id="log-in"]')
        txtusername = driver.find_element(By.ID, 'username')
        txtpassword = driver.find_element(By.ID, 'password')

        txtusername.clear()
        txtusername.send_keys(TestData.USERNAME)
        txtpassword.clear()
        txtpassword.send_keys(TestData.PASSWORD)
        btnlogin.click()
        compare_exp = driver.find_element(By.ID, 'showExpensesChart')
        compare_exp.click()
        eyes.check_window('Validate expenses between 2017 and 2018', 10)
        show_data = driver.find_element(By.ID, 'addDataset')
        show_data.click()
        eyes.check_window('Validate expenses between 2017, 2018 and 2019', 10)

        eyes.close()

    finally:
        driver.quit()
        eyes.abort()
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_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()
Beispiel #21
0
class ValidateLoginUIElements():
    eyes = Eyes()

    # Initialize the eyes SDK and set your private API key.
    eyes.api_key = TestData.API_KEY

    try:

        # Open a Chrome browser.
        driver = webdriver.Chrome()

        eyes.open(driver, TestData.APP_NAME, "Validate Login UI Elements",
                  TestData.VIEW_PORT)
        batch = BatchInfo('Login UI Test')
        driver.get(TestData.BASE_URL)
        eyes.check_window('Login UI Elements', 10)

        # End the test.
        eyes.close()

    finally:

        # Close the browser.
        driver.quit()

        # If the test was aborted before eyes.close was called, ends the test as aborted.
        eyes.abort()
def test_check_region_with_bad_selector_before_valid_check(driver, vg_runner):
    eyes = Eyes(vg_runner)
    driver.get(
        "https://applitools.github.io/demo/TestPages/VisualGridTestPage/")
    eyes.open(
        driver,
        "Applitools Eyes Python SDK",
        "TestCheckRegionWithBadSelectorBeforeValidCheck_VG",
    )
    with pytest.raises(NoSuchElementException):
        eyes.check_region("#element_that_does_not_exist")
        driver.find_element_by_id("centred").click()
        eyes.check_region("#modal-content")

        eyes.close_async()
        vg_runner.get_all_test_results()
Beispiel #23
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
def test_fetch_deep_css_chain(driver, vg_runner, target):
    eyes = Eyes(vg_runner)
    driver.get("https://applitools.github.io/demo/TestPages/CorsCssTestPage/")
    eyes.open(driver, "Test Visual Grid", "Test Deep CSS chain")

    eyes.check(target)

    eyes.close()
    vg_runner.get_all_test_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)
Beispiel #26
0
def eyes_setup(runner, batch_info):
    """Eyes setup."""
    eyes = Eyes(runner)
    suite_config = (Configuration().add_browser(
        1200, 700, BrowserType.CHROME_ONE_VERSION_BACK).add_browser(
            1200, 700, BrowserType.FIREFOX).add_browser(
                1200, 700, BrowserType.EDGE_CHROMIUM).add_browser(
                    768, 700, BrowserType.CHROME_ONE_VERSION_BACK).add_browser(
                        768, 700, BrowserType.FIREFOX).add_browser(
                            768, 700,
                            BrowserType.EDGE_CHROMIUM).add_device_emulation(
                                DeviceName.iPhone_X,
                                ScreenOrientation.PORTRAIT))
    eyes.set_configuration(suite_config)
    eyes.api_key = os.getenv("API_KEY")
    eyes.configure.batch = batch_info
    yield eyes
Beispiel #27
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"
def test_abort_async_on_vg(driver, vg_runner, batch_info):
    eyes = Eyes(vg_runner)
    eyes.configure.test_name = "TestAbortAsync"
    eyes.configure.app_name = "Visual Grid Render Test"
    eyes.configure.batch = batch_info
    eyes.configure.add_browser(1200, 800, BrowserType.CHROME)
    driver.get("https://demo.applitools.com")
    eyes.open(driver)
    eyes.check("", Target.window())
    eyes.abort_async()
    all_results = vg_runner.get_all_test_results(False)
Beispiel #29
0
def test_server_connector(driver):
    eyes = Eyes("https://localhost.applitools.com")
    driver = eyes.open(driver, "Python SDK", "TestDelete", {
        "width": 800,
        "height": 599
    })
    driver.get("https://applitools.com/helloworld")
    eyes.check("Hello", Target.window())
    results = eyes.close()
    results.delete()
    eyes.abort_if_not_closed()
def test_open_close_abort_eyes(local_chrome_driver):
    eyes = Eyes()
    eyes.open(local_chrome_driver, "USDK Test", "Test create close abort eyes")

    eyes.close(False)
    abort_result = eyes.abort()

    assert abort_result is None