示例#1
0
    def __init__(
            self,
            version="latest",
            os_type=utils.os_type(),
            path=None,
            name="chromedriver",
            url="https://chromedriver.storage.googleapis.com",
            latest_release_url="https://chromedriver.storage.googleapis.com/LATEST_RELEASE",
            chrome_type=ChromeType.GOOGLE,
            logger: logging.Logger = None,
            logginglevel=logging.INFO,
            loggingfile: str = None,
            cache_valid_range=1):
        super().__init__(path,
                         logger=logger,
                         logginglevel=logginglevel,
                         loggingfile=loggingfile,
                         cache_valid_range=cache_valid_range)

        self.driver = ChromeDriver(name=name,
                                   version=version,
                                   os_type=os_type,
                                   url=url,
                                   latest_release_url=latest_release_url,
                                   chrome_type=chrome_type)
def test_chrome_manager_with_wrong_version():
    with pytest.raises(ValueError) as ex:
        delete_old_install()
        ChromeDriverManager("0.2").install()
    assert ex.value.args[0] == "There is no such driver chromedriver with version 0.2 " \
                               "by http://chromedriver.storage.googleapis.com/0.2/chromedriver_{0}.zip".format(
        utils.os_type())
 def __init__(self, version=None, os_type=utils.os_type()):
     # type: (str, str) -> None
     super(ChromeDriverManager, self).__init__()
     # there is no driver with 64 bit
     if os_type == "win64":
         os_type = "win32"
     self.driver = ChromeDriver(version=version, os_type=os_type)
示例#4
0
    def __init__(self, version=None, os_type=utils.os_type()):
        # type: (str, str) -> GeckoDriverManager
        super(GeckoDriverManager, self).__init__()
        if os_type.startswith("mac"):
            os_type = "macos"

        self.driver = GeckoDriver(version=version,
                                  os_type=os_type)
def test_edge_manager_with_selenium():
    if os_name() == 'win':
        driver_path = EdgeChromiumDriverManager(os_type=os_type()).install()
        driver = webdriver.Edge(executable_path=driver_path)
        driver.get("http://automation-remarks.com")
        driver.quit()
    else:
        driver_path = EdgeChromiumDriverManager(os_type="win32").install()
        assert os.path.exists(driver_path)
示例#6
0
 def __init__(self, version="latest",
              os_type=utils.os_type(),
              name="IEDriverServer",
              url="http://selenium-release.storage.googleapis.com",
              latest_release_url=None):
     super(IEDriverManager, self).__init__()
     self.driver = IEDriver(version=version,
                            os_type=os_type,
                            name=name,
                            url=url,
                            latest_release_url=latest_release_url)
示例#7
0
 def __init__(self, version="latest",
              os_type=utils.os_type(),
              name="edgedriver",
              url="https://msedgedriver.azureedge.net",
              latest_release_url="https://msedgedriver.azureedge.net/"
                  "LATEST_STABLE"):
     super(EdgeChromiumDriverManager, self).__init__()
     self.driver = EdgeChromiumDriver(version=version,
                                      os_type=os_type,
                                      name=name,
                                      url=url,
                                      latest_release_url=latest_release_url)
示例#8
0
 def __file_name(self):
     if self.os_type == OSType.MAC:
         return "macosx.zip"
     elif self.os_type == OSType.WIN:
         return "windows.zip"
     elif self.os_type == OSType.LINUX and utils.os_architecture() == 64:
         return "linux-x86_64.tar.bz2"
     elif self.os_type == OSType.LINUX and utils.os_architecture() == 32:
         return "linux-i686.tar.bz2"
     else:
         raise ValueError("No such driver for os type {}".format(
             utils.os_type()))
def init_driver(request):
    browser = request.config.getoption("browser")
    if browser == "chrome":
        driver = webdriver.Chrome(
            executable_path=ChromeDriverManager().install())
    elif browser == "firefox":
        driver = webdriver.Firefox(GeckoDriverManager().install())
    elif browser == "edge":
        driver = webdriver.Edge(
            EdgeChromiumDriverManager(os_type=os_type()).install())
    request.cls.driver = driver
    yield
    driver.close()
示例#10
0
 def __init__(self, version="latest",
              os_type=utils.os_type(),
              path=None,
              name="edgedriver",
              url="https://msedgedriver.azureedge.net",
              latest_release_url="https://msedgedriver.azureedge.net/"
                                 "LATEST_RELEASE",
              log_level=None):
     super().__init__(path, log_level)
     self.driver = EdgeChromiumDriver(version=version,
                                      os_type=os_type,
                                      name=name,
                                      url=url,
                                      latest_release_url=latest_release_url)
示例#11
0
    def __init__(self, version="latest",
                 os_type=utils.os_type(),
                 path=None,
                 name="geckodriver",
                 url="https://github.com/mozilla/geckodriver/releases/download",
                 latest_release_url="https://api.github.com/repos/mozilla/geckodriver/releases/latest",
                 mozila_release_tag="https://api.github.com/repos/mozilla/geckodriver/releases/tags/{0}"):
        super(GeckoDriverManager, self).__init__(path)

        self.driver = GeckoDriver(version=version,
                                  os_type=os_type,
                                  name=name,
                                  url=url,
                                  latest_release_url=latest_release_url,
                                  mozila_release_tag=mozila_release_tag)
示例#12
0
 def __init__(self, version="latest",
              os_type=utils.os_type(),
              path=None,
              name="IEDriverServer",
              url="http://selenium-release.storage.googleapis.com",
              latest_release_url=None,
              log_level=None,
              print_first_line=True,
              cache_valid_range=1):
     super().__init__(path, log_level, print_first_line, cache_valid_range)
     self.driver = IEDriver(version=version,
                            os_type=os_type,
                            name=name,
                            url=url,
                            latest_release_url=latest_release_url)
示例#13
0
    def __init__(
        self,
        version="latest",
        os_type=utils.os_type(),
        path=None,
        name="chromedriver",
        url="http://chromedriver.storage.googleapis.com",
        latest_release_url="http://chromedriver.storage.googleapis.com/LATEST_RELEASE"
    ):
        super(ChromeDriverManager, self).__init__(path)

        self.driver = ChromeDriver(name=name,
                                   version=version,
                                   os_type=os_type,
                                   url=url,
                                   latest_release_url=latest_release_url)
示例#14
0
 def __init__(self, version="latest",
              os_type=utils.os_type(),
              path=None,
              name="chromedriver",
              url="http://chromedriver.storage.googleapis.com",
              latest_release_url="http://chromedriver.storage.google"
              "apis.com/LATEST_RELEASE",
              chrome_type=ChromeType.GOOGLE,
              DEBUG_LOGGING=True):
     super(ChromeDriverManager, self).__init__(path)
     self.DEBUG_LOGGING = DEBUG_LOGGING
     self.driver = ChromeDriver(name=name,
                                version=version,
                                os_type=os_type,
                                url=url,
                                latest_release_url=latest_release_url,
                                chrome_type=chrome_type)
示例#15
0
    def __init__(self, version="latest",
                 os_type=utils.os_type(),
                 path=None,
                 name="geckodriver",
                 url="https://github.com/mozilla/geckodriver/releases/download",
                 latest_release_url="https://api.github.com/repos/mozilla/geckodriver/releases/latest",
                 mozila_release_tag="https://api.github.com/repos/mozilla/geckodriver/releases/tags/{0}",
                 log_level=logging.INFO,
                 print_first_line=True,
                 cache_valid_range=1):
        super(GeckoDriverManager, self).__init__(path, log_level, print_first_line, cache_valid_range)

        self.driver = GeckoDriver(version=version,
                                  os_type=os_type,
                                  name=name,
                                  url=url,
                                  latest_release_url=latest_release_url,
                                  mozila_release_tag=mozila_release_tag)
示例#16
0
    def __init__(self, version="latest",
                 os_type=utils.os_type(),
                 path=None,
                 name="operadriver",
                 url="https://github.com/operasoftware/operachromiumdriver/"
                 "releases/",
                 latest_release_url="https://api.github.com/repos/"
                 "operasoftware/operachromiumdriver/releases/latest",
                 opera_release_tag="https://api.github.com/repos/"
                 "operasoftware/operachromiumdriver/releases/tags/{0}"):
        super(OperaDriverManager, self).__init__()

        self.driver = OperaDriver(name=name,
                                  version=version,
                                  os_type=os_type,
                                  url=url,
                                  latest_release_url=latest_release_url,
                                  opera_release_tag=opera_release_tag)
示例#17
0
    def __init__(
            self,
            version="latest",
            os_type=utils.os_type(),
            path=None,
            name="chromedriver",
            url="http://chromedriver.storage.googleapis.com",
            latest_release_url="http://chromedriver.storage.googleapis.com/LATEST_RELEASE",
            chrome_type=ChromeType.GOOGLE,
            log_level=logging.INFO):
        super().__init__(path, log_level=log_level)

        self.driver = ChromeDriver(name=name,
                                   version=version,
                                   os_type=os_type,
                                   url=url,
                                   latest_release_url=latest_release_url,
                                   chrome_type=chrome_type)
示例#18
0
    def __init__(
            self,
            version="latest",
            os_type=utils.os_type(),
            path=None,
            name="chromedriver",
            url="http://chromedriver.storage.googleapis.com",
            latest_release_url="http://chromedriver.storage.googleapis.com/LATEST_RELEASE",
            chrome_type='chromium',  #chrome_type=ChromeType.GOOGLE,
            log_level=logging.INFO):
        super().__init__(path, log_level=log_level)

        self.driver = ChromiumDriver(name=name,
                                     version=version,
                                     os_type=os_type,
                                     url=url,
                                     latest_release_url=latest_release_url,
                                     chrome_type=chrome_type)

        # from wdd
        if os_type in {'linux64', 'linux32', 'mac64',
                       'mac32'}:  # and os.geteuid() == 0:
            # THIS IS NOT WORKING PROPERLY.... geteuid is not 0 in Docker build
            base_path = "/usr/local"
        else:
            base_path = os.path.expanduser("~")

        # wdd uses a different download directory
        # if os_type in {OSType.LINUX, OSType.MAC}:
        #     self.download_root = os.path.join(base_path, "webdriver")
        # else:
        #     self.download_root = os.path.join(os.environ['HOME'], "webdriver")

        if os_type in {'linux64', 'linux32', 'mac64', 'mac32'}:
            self.link_path = os.path.join(base_path, "bin")
        else:
            self.link_path = os.path.join(os.environ['HOME'], "bin")

        # if not os.path.isdir(self.download_root):
        #     os.makedirs(self.download_root)
        #     logger.info("Created download root directory: {0}".format(self.download_root))
        if not os.path.isdir(self.link_path):
            os.makedirs(self.link_path)
            log("Created symlink directory: {0}".format(self.link_path))
示例#19
0
def init_driver(request):
    #global driver
    browser = request.config.getoption("browser")
    if browser == "chrome":
        driver = webdriver.Chrome(ChromeDriverManager().install())
    elif browser == "firefox":
        driver = webdriver.Firefox(GeckoDriverManager().install())
    elif browser == "edge":
        driver = webdriver.Edge(
            EdgeChromiumDriverManager(os_type=os_type()).install())
    request.cls.driver = driver
    try:
        driver.get(TestData.BASE_URL)
    except Exception as e:
        print(e)
        pass
    driver.maximize_window()
    yield
    driver.close()
示例#20
0
    def __init__(self, version="latest",
                 os_type=utils.os_type(),
                 path=None,
                 name="chromedriver",
                 url="https://registry.npmmirror.com/-/binary/chromedriver",
                 latest_release_url="https://registry.npmmirror.com/-/binary/chromedriver/LATEST_RELEASE",
                 chrome_type=ChromeType.GOOGLE,
                 log_level=logging.INFO,
                 print_first_line=True,
                 cache_valid_range=1):
        super().__init__(path, log_level=log_level, print_first_line=print_first_line,
                         cache_valid_range=cache_valid_range)

        self.driver = ChromeDriver(name=name,
                                   version=version,
                                   os_type=os_type,
                                   url=url,
                                   latest_release_url=latest_release_url,
                                   chrome_type=chrome_type)
示例#21
0
 def __init__(
     self,
     version="latest",
     os_type=utils.os_type(),
     path=None,
     name="edgedriver",
     url="https://msedgedriver.azureedge.net",
     latest_release_url="https://msedgedriver.azureedge.net/LATEST_RELEASE",
     log_level=None,
     print_first_line=None,
     cache_valid_range=1,
 ):
     super().__init__(path, log_level, print_first_line, cache_valid_range)
     self.driver = EdgeChromiumDriver(
         version=version,
         os_type=os_type,
         name=name,
         url=url,
         latest_release_url=latest_release_url,
     )
示例#22
0
    def __init__(self, version="latest",
                 os_type=utils.os_type(),
                 path=None,
                 name="operadriver",
                 url="https://github.com/operasoftware/operachromiumdriver/"
                 "releases/",
                 latest_release_url="https://api.github.com/repos/"
                 "operasoftware/operachromiumdriver/releases/latest",
                 opera_release_tag="https://api.github.com/repos/"
                 "operasoftware/operachromiumdriver/releases/tags/{0}",
                 log_level=logging.INFO,
                 print_first_line=True,
                 cache_valid_range=1):
        super().__init__(path, log_level, print_first_line, cache_valid_range)

        self.driver = OperaDriver(name=name,
                                  version=version,
                                  os_type=os_type,
                                  url=url,
                                  latest_release_url=latest_release_url,
                                  opera_release_tag=opera_release_tag)
示例#23
0
 def __init__(
     self,
     version="latest",
     os_type=utils.os_type(),
     path=None,
     name="IEDriverServer",
     url="https://github.com/seleniumhq/selenium/releases/download",
     latest_release_url="https://api.github.com/repos/seleniumhq/selenium/releases",
     ie_release_tag="https://api.github.com/repos/seleniumhq/selenium/releases/tags/selenium-{0}",
     log_level=None,
     print_first_line=True,
     cache_valid_range=1,
 ):
     super().__init__(path, log_level, print_first_line, cache_valid_range)
     self.driver = IEDriver(
         version=version,
         os_type=os_type,
         name=name,
         url=url,
         latest_release_url=latest_release_url,
         ie_release_tag=ie_release_tag,
     )
示例#24
0
def init_driver(request):
    # global driver
    #global driver
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-notifications')
    browser = request.config.getoption("browser")
    if browser == "chrome":
        driver = webdriver.Chrome(executable_path=Config.CHROME_PATH,
                                  options=options)
    elif browser == "firefox":
        driver = webdriver.Firefox(GeckoDriverManager().install())
    elif browser == "edge":
        driver = webdriver.Edge(
            EdgeChromiumDriverManager(os_type=os_type()).install())
    request.cls.driver = driver
    # try:
    #     driver.get(TestData.BASE_URL)
    # except Exception as e:
    #     print(e)
    #     pass
    # driver.maximize_window()
    yield
    driver.close()
 def __init__(self, version=None, os_type=utils.os_type()):
     super(IEDriverManager, self).__init__()
     self.driver = IEDriver(version=version, os_type=os_type)
示例#26
0
 def __init__(self, version=None, os_type=utils.os_type()):
     # type: (str, str) -> None
     super(PhantomJsDriverManager, self).__init__()
     self.driver = PhantomJsDriver(version=version, os_type=os_type)
示例#27
0
 def __init__(self, version=None, os_type=utils.os_type()):
     DriverManager.__init__(self)
     # there is no driver with 64 bit
     if os_type == "win64":
         os_type = "win32"
     self.driver = ChromeDriver(version=version, os_type=os_type)
示例#28
0
                chrome.ChromeDriverManager(log_level=logging.WARN).install(),
                chrome_options=options)
        except ConnectionError:

            driver = webdriver.Chrome(chrome_options=options)

    elif browser in ['firefox', 'ff']:
        driver = webdriver.Firefox(
            executable_path=firefox.GeckoDriverManager().install())

    elif browser in ['ie', 'internet explorer']:
        caps = DesiredCapabilities.INTERNETEXPLORER
        caps['nativeEvents'] = False
        try:
            driver = webdriver.Ie(microsoft.IEDriverManager(
                os_type='Win32', log_level=logging.WARN).install(),
                                  capabilities=caps)
        except requests.exceptions.ConnectionError:
            logger.warning('自动化下载驱动失败,使用系统配置驱动')
            driver = webdriver.Ie(capabilities=caps)
    else:
        driver = webdriver.Edge()
    driver.maximize_window()
    driver.speed = 1
    yield driver
    # driver.quit()


if __name__ == '__main__':
    print(utils.os_type())