def browser(config):

    # Initialize shared arguments
    kwargs = {
        'projectname': config['testproject_projectname'],
        'token': config['testproject_token']
    }

    # Initialize the TestProject WebDriver instance
    # Note that these objects use the same API as Selenium WebDriver
    # The only thing different is the initialization call
    # Therefore, any WebDriver-based project can easily be retrofitted to use TestProject!

    if config['browser'] == 'Firefox':
        b = webdriver.Firefox(**kwargs)
    elif config['browser'] == 'Chrome':
        b = webdriver.Chrome(**kwargs)
    elif config['browser'] == 'Headless Chrome':
        opts = ChromeOptions()
        opts.add_argument('headless')
        b = webdriver.Chrome(chrome_options=opts, **kwargs)
    else:
        raise Exception(f'Browser "{config["browser"]}" is not supported')

    # Make its calls wait for elements to appear
    b.implicitly_wait(config['implicit_wait'])

    # Return the WebDriver instance for the setup
    yield b

    # Quit the WebDriver instance for the cleanup
    b.quit()
Beispiel #2
0
def setup(request):
    global driver
    browser_name = request.config.getoption("browser_name")
    if browser_name == "chrome":
        #driver = webdriver.Chrome(executable_path="/Users/brendan/Documents/Shoptest/ShopSiteFramework/chromedriver")
        driver = webdriver.Chrome(token="YvgAzzjby2n8IHv-usxzxPDnH4Fi3l8sSpYL0iQbGrw", project_name="ShopSite Testing")
    elif browser_name == "firefox":
        driver = webdriver.Chrome(executable_path="exec_path")
    driver.get("http://brendanqa.com/cgi-bin/brendan/ss/start.cgi")
    driver.maximize_window()
    driver.implicitly_wait(3)

    request.cls.driver = driver

    username = "******"
    password = "******"

    driver.find_element_by_name("ss_id1").send_keys(username)
    driver.find_element_by_name("ss_pw1").send_keys(password)
    driver.find_element_by_name("login").click()

    # Get Logger
    log = getLogger()
    log.info("TEST HAS STARTED")

    yield

    driver.quit()
def driver():
    chrome_options = ChromeOptions()
    chrome_options.headless = True
    driver = webdriver.Chrome(chrome_options=chrome_options,
                              project_name="CI - Python")
    yield driver
    driver.quit()
Beispiel #4
0
def driver():
    chrome_options = ChromeOptions()
    chrome_options.headless = True
    chrome_options.set_capability("cloud:URL", os.getenv("TP_CLOUD_URL"))
    driver = webdriver.Chrome(chrome_options=chrome_options, project_name="CI - Python")
    yield driver
    driver.quit()
def driver():
    """
    Pytest fixture function that manages the test's Setup and Teardown.
    Creates the Chrome WebDriver and quits it once all test cases are done.
    See: https://docs.pytest.org/en/stable/fixture.html for more information on how fixture can be used.
    """
    driver = webdriver.Chrome(chrome_options=ChromeOptions(),
                              project_name="Examples",
                              job_name="Pytest Example")
    yield driver
    driver.quit()
Beispiel #6
0
def driver():
    driver = webdriver.Chrome(project_name="Workshop Python",
                              job_name="Air BNB Test")
    step_settings = StepSettings(
        timeout=15000,
        screenshot_condition=TakeScreenshotConditionType.Always,
        sleep_time=2000,
        sleep_timing_type=SleepTimingType.Before)
    with DriverStepSettings(driver, step_settings):
        yield driver
    driver.quit()
Beispiel #7
0
def driver():
    driver = webdriver.Chrome(
        token="kJCeheoppFyo8uaZ17k0JQyBck1qLIf5ZrynbI6t7Fk1",
        project_name="Ran's Project",
        job_name="Python Test Check")
    step_settings = StepSettings(
        timeout=15000,
        screenshot_condition=TakeScreenshotConditionType.Failure)
    with DriverStepSettings(driver, step_settings):
        yield driver
    driver.quit()
Beispiel #8
0
def driver():
    driver = webdriver.Chrome(
        token="MSlM0L0EXHkqZ0CLf98m9Qn4YRcBoPaaxsMEDsH6FrQ1",
        project_name="Demo Project",
        job_name="AirBnb Test")
    step_settings = StepSettings(
        timeout=15000,
        screenshot_condition=TakeScreenshotConditionType.Failure)
    with DriverStepSettings(driver, step_settings):
        yield driver
    driver.quit()
Beispiel #9
0
def test_local_report():
    driver = webdriver.Chrome(
        token=DEV_TOKEN,
        project_name="Report Decorator Project",
        job_name="Report Decorator Job",
        report_type=ReportType.LOCAL,
    )
    driver.report().disable_command_reports(True)
    driver.get(url="https://www.google.com")
    driver.report().step("Local Report - Navigating to URL",
                         "Navigating to Google", True)
    driver.quit()
Beispiel #10
0
def simple_test():
    driver = webdriver.Chrome()

    driver.get("https://example.testproject.io/web/")

    driver.find_element_by_css_selector("#name").send_keys("John Smith")
    driver.find_element_by_css_selector("#password").send_keys("12345")
    driver.find_element_by_css_selector("#login").click()

    passed = driver.find_element_by_css_selector("#logout").is_displayed()

    print("Test passed") if passed else print("Test failed")

    driver.quit()
def test1():
    driver = webdriver.Chrome(
        token='xMOUq-CTwc12Ru7Vjls1syE6uZ8B7vxcv1KAs55XaOY1')

    driver.get("https://example.testproject.io/web/")

    driver.find_element_by_css_selector("#name").send_keys("John Smith")
    driver.find_element_by_css_selector("#password").send_keys("12345")
    driver.find_element_by_css_selector("#login").click()

    passed = driver.find_element_by_css_selector("#logout").is_displayed()

    print("Test passed") if passed else print("Test failed")

    driver.quit()
Beispiel #12
0
def simple_test():
    driver = webdriver.Chrome(token=os.getenv('TP_DEV_TOKEN'))
    #driver = webdriver.Chrome()
    driver.report().disable_auto_test_reports(disabled=True)

    driver.get("https://example.testproject.io/web/")
    driver.find_element_by_css_selector("#name").send_keys("John Smith")
    driver.find_element_by_css_selector("#password").send_keys("12345")
    driver.find_element_by_css_selector("#login").click()
    passed = driver.find_element_by_css_selector("#logout").is_displayed()
    print("Test passed") if passed else print("Test failed")

    driver.report().test(name="My self reported test",
                         message="A message",
                         passed=True)
    driver.quit()
Beispiel #13
0
def driver():
    driver = webdriver.Chrome(token=DEV_TOKEN,
                              project_name="Addon Invert Result Project",
                              job_name="Addon Invert Result Job")
    yield driver
    driver.quit()
Beispiel #14
0
def test_example_using_chrome():
    driver = webdriver.Chrome()
    LoginPage(driver).open().login_as("John Smith", "12345")
    assert ProfilePage(driver).greetings_are_displayed() is True
    driver.quit()
Beispiel #15
0
def driver():
    driver = webdriver.Chrome(token=DEV_TOKEN, project_name="Web Driver Report Project",
                              job_name="Web Driver Report Job")
    yield driver
    driver.quit()
def driver():
    driver = webdriver.Chrome(token=DEV_TOKEN,
                              project_name="Report Decorator Project",
                              job_name="Report Decorator Job")
    yield driver
    driver.quit()
Beispiel #17
0
 def test_login_to_testproject_demo_app(self):
     driver = webdriver.Chrome()
     LoginPage(driver).open().login_as("John Smith", "12345")
     assert ProfilePage(driver).greetings_are_displayed() is True
     driver.quit()
Beispiel #18
0
def driver():
    driver = webdriver.Chrome(chrome_options=ChromeOptions(),
                              project_name="Examples",
                              job_name=None)
    yield driver
    driver.quit()
Beispiel #19
0
def driver():
    driver = webdriver.Chrome()
    # disable all automatic reports, tests and steps will be reported manually
    driver.report().disable_auto_test_reports(disabled=True)
    yield driver
    driver.quit()
Beispiel #20
0
def driver():
    driver = webdriver.Chrome(project_name="CI - Python")
    yield driver
    driver.quit()
def driver():
    driver = webdriver.Chrome()
    yield driver
    driver.quit()
Beispiel #22
0
def test_bad_token():
    with pytest.raises(expected_exception=InvalidTokenException):
        driver = webdriver.Chrome(token="bad_token")
        driver.quit()
Beispiel #23
0
 def setUp(self):
     self.driver = webdriver.Chrome(
         chrome_options=ChromeOptions(), project_name="Examples", job_name=None
     )
 def setUp(self) -> None:
     self.driver = webdriver.Chrome(chrome_options=ChromeOptions(),
                                    project_name="Examples",
                                    job_name="UnitTest Example")
def test_create_a_chrome_driver_instance():
    driver = webdriver.Chrome()
    # Your test code goes here
    driver.quit()
Beispiel #26
0
def before_all(context):
    context.driver = webdriver.Chrome(token="Hg3fwHF6lSXmEnWGfkRR6-ASK5jAuhbfDIA8rSfqPNM1",
                                      project_name="Behave Tests",
                                      job_name="Login Scenario")
Beispiel #27
0
def browser():
    driver = webdriver.Chrome(project_name="Python BDD", job_name="Python BDD")
    yield driver
    driver.quit
Beispiel #28
0
def before_all(context):
    context.driver = webdriver.Chrome(project_name="Python BDD",
                                      job_name="Behave")
Beispiel #29
0
    def init_testproject_driver(
        self,
        browser: str = "firefox",
        url: Optional[str] = None,
        timeout: Optional[int] = 5000,
        project_name: Optional[str] = "TestProject Robot",
        job_name: Optional[str] = "Robot Job",
        desired_capabilities: Union[str, dict, None] = None,
        disabled_reports: Optional[bool] = False,
        dev_token: Optional[str] = os.getenv("TP_DEV_TOKEN"),
    ):
        logger.console(f"Initializing TestProject Library for Robot v{definitions.get_lib_version()}...")

        # # Make sure development token is set
        # if not dev_token:
        #     BuiltIn().fatal_error(
        #         "******************************************************************************\n"
        #         "* TestProject Development token not set!                                     *\n"
        #         "* Please use the 'dev_token' argument of the 'init_testproject_driver'       *\n"
        #         "* keyword, or set the 'TP_DEV_TOKEN' environment variable.                   *\n"
        #         "******************************************************************************"
        #     )

        driver = None
        # Check if instance of Options to pass to the driver.
        if not isinstance(desired_capabilities, (ChromeOptions, FirefoxOptions, IeOptions)):
            desired_capabilities = self._build_capabilities(
                WebDriverCreator(os.getcwd())._parse_capabilities(capabilities=desired_capabilities, browser=browser), browser
            )
        # If headless, override and start a clean headless session.
        if "headless" in browser:
            type = browser.split("headless", 1)[1]
            if type == "chrome":
                desired_capabilities = ChromeOptions()
            elif type == "firefox":
                desired_capabilities = FirefoxOptions()
            else:
                raise ValueError("Headless is supported for FireFox and Chrome only")
            desired_capabilities.add_argument("--headless")
            browser = type
        if browser in self.FIREFOX_NAMES:
            driver = webdriver.Firefox(
                firefox_options=desired_capabilities,
                token=dev_token,
                projectname=project_name,
                jobname=job_name,
                disable_reports=disabled_reports,
            )
        elif browser in self.CHROME_NAMES:
            driver = webdriver.Chrome(
                chrome_options=desired_capabilities,
                token=dev_token,
                projectname=project_name,
                jobname=job_name,
                disable_reports=disabled_reports,
            )
        elif browser in self.IE_NAMES:
            driver = webdriver.Ie(
                ie_options=desired_capabilities,
                token=dev_token,
                projectname=project_name,
                jobname=job_name,
                disable_reports=disabled_reports,
            )
        elif browser == "edge":
            driver = webdriver.Edge(
                edge_options=desired_capabilities,
                token=dev_token,
                projectname=project_name,
                jobname=job_name,
                disable_reports=disabled_reports,
            )
        elif browser == "safari":
            driver = webdriver.Safari(
                desired_capabilities=desired_capabilities,
                token=dev_token,
                projectname=project_name,
                jobname=job_name,
                disable_reports=disabled_reports,
            )
        else:
            raise ValueError("Unsupported Browser, please look at the official TestProject library documentation")

        driver.report().disable_command_reports(True)
        driver.set_script_timeout(timeout)
        driver.report().step(message="Set timeout", description=f"Time out was set to {timeout}", passed=True)
        try:
            driver.get(url)
            driver.report().step(message=f"Navigated to {url}", description=f"Successfully navigated to {url}", passed=True)
        except Exception:
            driver.report().step(message=f"Failed to open {url}", description=f"Failed to open {url}", passed=True)
            raise
        self.library.register_driver(driver=driver, alias="testproject_driver")
        self.__reporter = driver.report()
        self.__reporter.exclude_test_names(["run_cli", "main"])