コード例 #1
0
 def test_multiple(self):
   self.assertFalse(self.local.isRunning())
   self.local.start()
   self.assertTrue(self.local.isRunning())
   try:
     self.local2 = Local(os.environ['BROWSERSTACK_ACCESS_KEY'])
     self.local2.start()
   except BrowserStackLocalError as e:
     self.assertEqual(str(e), "Either another browserstack local client is running on your machine or some server is listening on port 45691")
コード例 #2
0
def start_local():
    """Starts BrowserStack Local"""
    global bs_local
    bs_local = Local()
    bs_local_args = {
        "key": CONFIG['capabilities']['browserstack.key'],
        "forcelocal": "true"
    }
    bs_local.start(**bs_local_args)
コード例 #3
0
ファイル: html.py プロジェクト: huertatipografica/Andada-Pro
def browserstack_local(access_key):
    """Start browserstack local tool as a background process"""
    # TODO This can be deprecated once
    # https://github.com/browserstack/browserstack-local-python/pull/28 is
    # merged (it may not be merged because it's a relatively inactive repo)
    local = Local(key=access_key)
    try:
        local.start()
        yield local
    finally:
        local.stop()
コード例 #4
0
ファイル: environment.py プロジェクト: xmaska/skilling-2
def start_local():
    try:
        # creates an instance of Local
        BS_LOCAL = Local()
        # replace <browserstack-accesskey> with your key. You can also set an environment variable - "BROWSERSTACK_ACCESS_KEY".
        bs_local_args = {"key": BROWSERSTACK_ACCESS_KEY}
        # starts the Local instance with the required arguments
        BS_LOCAL.start(**bs_local_args)
        # check if BrowserStack local instance is running
        print("bs_local running:", BS_LOCAL.isRunning())
    except Exception as e:
        print('Exception occured while instantiating web driver locally' + str(e))
コード例 #5
0
def connect_bs_to_local(key):
    """ Create a connection between Browserstack and localhost """
    from browserstack.local import Local
    bs_local = Local()
    bs_local_args = {
        "key": key,
        "forcelocal": "true",
    }
    bs_local.start(**bs_local_args)
    logger.info('Browerstack local connection:', bs_local.isRunning())
    # The default Browserstack local.stop() isn't working for some reason.
    # But actually there is no need to close the connection as it is running inside a Docker container that gets killed after the test is done.


# def stop_bs_local():
#     bs_local.stop()
コード例 #6
0
    def run_suite(self, suite, **kwargs):
        """Override run_suite with a for loop function."""
        suite._cleanup = False
        bs_local = Local()
        bs_local_args = {"forcelocal": "true"}
        bs_local.start(**bs_local_args)

        print(  # noqa: T001
            "Browser stack is %srunning..." %
            ("" if bs_local.isRunning() else "not "))

        result = {}
        for cap in getattr(settings, "BROWSERSTACK_CAPS", {}):
            settings.WEBDRIVER = cap
            kwargs = self.get_test_runner_kwargs()
            runner = self.test_runner(**kwargs)
            result = runner.run(suite)

        # return last result.. not sure how to merge them
        bs_local.stop()

        return result
コード例 #7
0
def start_local():
    """Code to start browserstack local before start of test."""
    global bs_local
    bs_local = Local()
    bs_local_args = { "key": BROWSERSTACK_ACCESS_KEY, "forcelocal": "true" }
    bs_local.start(**bs_local_args)
コード例 #8
0
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import os, time, requests
from browserstack.local import Local

BROWSERSTACK_USERNAME = os.environ['BROWSERSTACK_USERNAME']
BROWSERSTACK_ACCESS_KEY = os.environ['BROWSERSTACK_ACCESS_KEY']

bs_local = Local()
bs_local_args = {"key": BROWSERSTACK_ACCESS_KEY}
bs_local.start(**bs_local_args)
# print ("Success starting local!!")

desired_cap = {
    'browser': 'Chrome',
    'browser_version': '75.0',
    'os': 'Windows',
    'os_version': '7',
    'resolution': '1024x768',
    'browserstack.local': 'true',  # LOCAl CAPABILITY
    'name': 'Python Local APIs',
    'build': 'Python Demo'
}

try:
    driver = webdriver.Remote(
        command_executor='https://%s:%[email protected]/wd/hub' %
        (BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY),
        desired_capabilities=desired_cap)
    print("Local Test Started")
コード例 #9
0
 def start_local(self):
     self.bs_local = Local()
     bs_local_args = {"key": "sUiJatw6NhJZpsttcY35", "forcelocal": "true"}
     self.bs_local.start(**bs_local_args)
def start_local():
    global bs_local
    bs_local = Local()
    bs_local_args = {"key": accessKey, "forcelocal": "true"}
    bs_local.start(**bs_local_args)
コード例 #11
0
def start_local():
    """Code to start browserstack local before start of test."""
    global bs_local
    bs_local = Local()
    bs_local_args = { "key": CONFIG['capabilities']['browserstack.key'], "forcelocal": "true" }
    bs_local.start(**bs_local_args)
コード例 #12
0
 def setUp(self):
   self.local = Local(os.environ['BROWSERSTACK_ACCESS_KEY'])
コード例 #13
0
    def get_browser_instance(self):
        try:
            if self.browser.lower() == "firefox":
                options = FirefoxOptions()
                if self.headless:
                    options.add_argument("--headless")
                    options.add_argument("-width=1920")
                    options.add_argument("-height=1080")
                # options.add_argument("--disable-gpu")
                profile = webdriver.FirefoxProfile()
                # options.add_argument("--private")
                profile.accept_untrusted_certs = True
                service = Service(executable_path=GeckoDriverManager(
                    cache_valid_range=10).install())
                driver = webdriver.Firefox(service=service,
                                           firefox_profile=profile,
                                           options=options)

            elif self.browser.lower() == "chrome":
                options = ChromeOptions()
                if self.headless:
                    options.add_argument('headless')
                    options.add_argument('window-size=1920x1080')
                if self.mobile:
                    mobile_emulation = {"deviceName": self.device}
                    options.add_experimental_option("mobileEmulation",
                                                    mobile_emulation)
                options.add_argument('ignore-certificate-errors')
                options.add_argument('--incognito')
                # options.add_argument('--start-maximized')
                options.add_experimental_option('useAutomationExtension',
                                                False)
                options.add_experimental_option("excludeSwitches",
                                                ["enable-automation"])
                # options.add_experimental_option("excludeSwitches", ["enable-logging"])
                options.add_argument('--log-level=3')
                service = Service(
                    ChromeDriverManager(cache_valid_range=10).install())
                driver = webdriver.Chrome(service=service, options=options)

            elif self.browser.lower() == "ie":
                driver = webdriver.Ie(IEDriverManager().install())

            elif self.browser.lower() == "edge":
                options = EdgeOptions()
                if self.headless:
                    options.add_argument('headless')
                    options.add_argument('window-size=1920x1080')
                options.use_chromium = True
                options.add_argument('ignore-certificate-errors')
                options.add_experimental_option('useAutomationExtension',
                                                False)
                options.add_argument('--inprivate')
                options.add_argument('--log-level=3')
                options.add_experimental_option("excludeSwitches",
                                                ["enable-automation"])
                service = Service(
                    EdgeChromiumDriverManager(cache_valid_range=10,
                                              log_level=1).install())
                driver = webdriver.Chrome(service=service, options=options)

            elif self.browser.lower() == 'browserstack':
                bs_local = Local()
                bs_local_args = {
                    "key": key,
                    "localIdentifier": localIdentifier
                }
                bs_local.start(**bs_local_args)
                driver = webdriver.Remote(command_executor=bb_url,
                                          desired_capabilities=browser_config)

            # elif self.browser.lower() =="docker":
            #     options = FirefoxOptions()
            #     options.add_argument("--headless")
            #     options.add_argument("-width=1920")
            #     options.add_argument("-height=1080")
            #     profile = webdriver.FirefoxProfile()
            #     # options.add_argument("--private")
            #     profile.accept_untrusted_certs = True
            #     driver = webdriver.Remote(command_executor="http://localhost:4444", options=options, browser_profile=profile)

            else:
                raise ValueError

            if self.headless:
                self.cl.info("Starting " + str(self.browser).upper() +
                             " browser in headless mode")
            else:
                self.cl.info("Starting " + str(self.browser).upper() +
                             " browser ")
                if self.browser.lower(
                ) == "browserstack" and 'browserName' in browser_config.keys():
                    pass
                else:
                    driver.maximize_window()

            driver.delete_all_cookies()
            # driver.set_page_load_timeout(30)

            if self.baseUrl:
                driver.get(self.baseUrl)
                self.cl.info("Opening the URL :: " + str(self.baseUrl))

            # driver.implicitly_wait(10)
            return driver

        except ValueError as val:
            self.cl.error(
                "Browser not supported :: " + str(self.browser) +
                ". Supported browser types are Chrome, Firefox, Edge. Exception occurred. :: "
                + str(val.__class__.__name__) + ' ' + str(val))
            raise val

        except Exception as e:
            self.cl.error("Exception occurred. :: " +
                          str(e.__class__.__name__) + ' ' + str(e))
            raise e
コード例 #14
0
 def setUp(self):
     self.local = Local('sKUQixMHzMLvVtAqysUN')
コード例 #15
0
 def test_context_manager(self):
     with Local('BROWSERSTACK_ACCESS_KEY') as local:
         self.assertNotEqual(local.proc.pid, 0)
コード例 #16
0
    def Download_file_to_machine(self):
        desired_cap = {
            "browser": "chrome",
            "browser_version": "latest",
            "os": "windows",
            "os_version": "10",
            'build': 'Teladoc',
            'name': 'Teladoc Test',
            'browserstack.local': 'true'
        }

        bs_local = Local()
        # You can also set an environment variable - "BROWSERSTACK_ACCESS_KEY".
        bs_local_args = {
            "key": "yourKey",
            "f": "/Users/yourFolder/Documents/Local_Testing/Local"
        }

        # Starts the Local instance with the required arguments
        bs_local.start(**bs_local_args)

        # Check if BrowserStack local instance is running
        print(bs_local.isRunning())

        driver = webdriver.Remote(
            desired_capabilities=desired_cap,
            command_executor=
            'https://*****:*****@hub-cloud.browserstack.com/wd/hub')

        # Navigate to the link
        driver.get("http://username.browserstack.com")

        # Accept the cookie popup
        time.sleep(2)
        url = 'download/11_01_2020 01_26 AM PDT — 11_10_2020 05_26 AM PST.xml'

        # Find element by class name and store in variable "element"
        element = driver.find_element_by_xpath('//a[@href="' + url + '"]')
        time.sleep(2)

        # Click on the element to download the file
        element.click()
        time.sleep(2)

        # Check if file exists
        file_exists = driver.execute_script(
            'browserstack_executor: {"action": "fileExists"}')
        print(file_exists)

        # Check file properties
        file_properties = driver.execute_script(
            'browserstack_executor: {"action": "getFileProperties"}')
        print(file_properties)

        get_file_content = driver.execute_script(
            'browserstack_executor: {"action": "getFileContent"}')
        time.sleep(2)

        # Decode the content to Base64 and write to a file
        data = base64.b64decode(get_file_content)
        f = open("11_01_2020 01_26 AM PDT — 11_10_2020 05_26 AM PST.xml", "wb")
        f.write(data)

        # Stop the Local instance
        bs_local.stop()

        driver.quit()