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/")
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
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()
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
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()
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)
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()
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)
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)
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()
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()
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()
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()
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)
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
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)
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