コード例 #1
0
def browser(request):
    browser_type = request.config.getoption('--browser')
    if browser_type == 'chrome':
        cdm = ChromeDriverManager()
        cdm.download_and_install()
        option = ChromeOptions()
        option.add_argument('--kiosk')
        # option.add_argument('--disable-popup-blocking')
        option.add_argument('--ignore-certificate-errors')
        # option.headless = True
        browser = webdriver.Chrome(options=option)
        # browser.implicitly_wait(5)
        request.addfinalizer(browser.quit)
        return browser
    if browser_type == 'firefox':
        gdm = GeckoDriverManager()
        gdm.download_and_install()
        option = FirefoxOptions()
        option.add_argument('--kiosk')
        # option.headless = True
        browser = webdriver.Firefox(options=option)
        browser.implicitly_wait(5)
        request.addfinalizer(browser.quit)
        return browser
    else:
        raise Exception(f'{request.param} is not supported!')
コード例 #2
0
ファイル: scraper.py プロジェクト: dhvcc/codewars-scraper
    def __init__(
        self,
        email: str,
        password: str,
        *,
        headless: bool = True,
        timeout: int = 10,
    ):
        logger.debug("Scraper init")
        driver_manager = ChromeDriverManager()
        driver_manager.download_and_install()

        logger.info("Browser and driver are installed")

        self.email = email
        self.password = password

        self.timeout = timeout

        self.options = webdriver.ChromeOptions()
        self.options.headless = headless

        self.driver = webdriver.Chrome(options=self.options)

        # { Lang: { kyu: { title: code } } }
        self.solutions_data: Dict[str, Dict[str, Dict[str, str]]] = {}
コード例 #3
0
 def __init__(self, persister, logger):
     Analysis.__init__(self, persister, logger)
     HOME_DIR = os.getenv("HOME") or os.getenv("USERPROFILE")
     WEBDRIVER = os.path.join(HOME_DIR, ".wapiti", "generated_report")
     if not os.path.isdir(WEBDRIVER):
         os.makedirs(WEBDRIVER)
     chr = ChromeDriverManager(download_root=WEBDRIVER, link_path=WEBDRIVER)
     self.driver_path = chr.download_and_install(show_progress_bar=False)[1]
コード例 #4
0
def manage_webdriver():
    """
    Метод для загрузки, установки и добавления в PYTHONPATH вебдрайвера для работы с selenium
    """
    cdm = ChromeDriverManager()

    with no_ssl_verification():

        _, symlink = cdm.download_and_install()

    sys.path.insert(0, symlink)
コード例 #5
0
 def __init__(self, iterations):
     cdm = ChromeDriverManager()
     chromedriver_path = cdm.download_and_install()
     print(chromedriver_path)
     options = webdriver.ChromeOptions()
     options.add_argument('headless')  # убираем графический интерфейс
     self.driver = webdriver.Chrome(
         executable_path='venv/Scripts/chromedriver.exe',
         chrome_options=options)
     # используем браузер Chrome
     self.navigate(iterations)  # функция вызывается при создании бота
     self.close()
コード例 #6
0
    def openChrome():
        chrome_options = webdriver.ChromeOptions()
        prefs = {"profile.default_content_setting_values.notifications": 2}
        chrome_options.add_experimental_option("prefs", prefs)
        chrome_options.add_argument("--headless")

        try:
            browser = webdriver.Chrome(chrome_options=chrome_options)
            return browser
        except WebDriverException:
            ChromeDriverManager.download_and_install()
            browser = webdriver.Chrome(chrome_options=chrome_options)
            return browser
コード例 #7
0
ファイル: selethon.py プロジェクト: thanawatpetchuen/selethon
def main():
  if len(sys.argv) == 1:
    here = os.path.abspath(os.path.dirname(__file__))
    about = {}
    with open(os.path.join(here, '__version__.py')) as f:
        exec(f.read(), about)
    print("Selethon v%s" % about['__version__'])
  elif str(sys.argv[1]) == "install":
    try:
      if str(sys.argv[2]) == "chrome":
        from webdrivermanager import ChromeDriverManager
        cdd = ChromeDriverManager(link_path='AUTO')
        cdd.download_and_install()
    except IndexError:
      print("Please provide webdriver")
コード例 #8
0
 def __init__(self):
     self.header = {
         'User-Agent':
         'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0',
         'Accept':
         'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
         'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
         'Accept-Encoding': 'none',
         'Accept-Language': 'en-US,en;q=0.8',
         'Connection': 'keep-alive'
     }
     options = Options()
     options.add_argument('--headless')
     options.add_argument('--no-sandbox')
     options.add_argument('--disable-gpu')
     options.add_argument("--window-size=1920,1080")
     bit32, bit64 = ChromeDriverManager().download_and_install()
     # st = os.stat(bit64)
     # os.chmod(bit64, st.st_mode | stat.S_IEXEC)  # Windows only does readonly stuff using os.chmod
     # # For windows
     # print(check_output("icacls " + str(bit64) + " /grant Everyone:F", shell=True).decode())
     # # end for windows
     self.browser = webdriver.Chrome(
         executable_path=bit64, options=options
     )  # Replace with .Firefox(), or with the browser of your choice
     self.browser.implicitly_wait(
         1
     )  # IMPORTANT: Keep this at least one second to not get flagged as a bot - it's also a hack to let the page JS load
コード例 #9
0
def main():
    """Check for uploaded pdf files for 6DOS accounts listed by the csv provided by the user."""
    # Get filename and test if it is valid
    root = Tk()
    root.withdraw()
    fileName = askopenfilename()
    root.update()
    try:
        testFile = open(fileName, "r")
    except FileNotFoundError:
        rootLogger.error(fileName + " does not exist!")
        quit()

    # Save start time
    startTime = time()

    rootLogger.info("Starting Browser...")

    # Run Chrome headless
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--window-size=1920x1080")
    chrome_options.add_argument("log-level=3")

    # Start browser driver
    try:
        browser = webdriver.Chrome(chrome_options=chrome_options,
                                   executable_path='./chromedriver.exe')
    except WebDriverException:
        gdd = ChromeDriverManager(link_path='.')
        gdd.download_and_install()
        browser = webdriver.Chrome()

    # Login
    rootLogger.info("Logging in...")
    login(browser)

    # Check pages
    rootLogger.info("Checking pages...")
    check_pages(browser, testFile, startTime)

    elapsedTime = time() - startTime
    strftime("Total Time: %M minutes %S seconds", gmtime(elapsedTime))
コード例 #10
0
def get_driver():
    """ Handles download and installation of a required webdriver according to parameters set in settings.ini """
    browser = cfg['meta']['Browser']

    if browser.lower() == 'firefox':
        driver = webdriver.Firefox(
            executable_path=GeckoDriverManager().download_and_install()[0])
    elif browser.lower() == 'chrome':
        driver = webdriver.Chrome(
            executable_path=ChromeDriverManager().download_and_install()[0])
    return driver
コード例 #11
0
ファイル: webdriver.py プロジェクト: pargev/TractorDriver
 def __init__(self, executable_path=None, port=0,
              options=None, service_args=None,
              desired_capabilities=None, service_log_path=None,
              chrome_options=None, version='latest', *args, **kwargs):
     if not executable_path:
         executable_path = ChromeDriverManager().download_and_install(version=version)[0]
         # os.environ["webdriver.chrome.driver"] = executable_path
     super(Chrome, self).__init__(executable_path=executable_path, port=port,
                                  options=options, service_args=service_args,
                                  desired_capabilities=desired_capabilities, service_log_path=service_log_path,
                                  chrome_options=chrome_options, *args, **kwargs)
コード例 #12
0
def before_all(context):
    try:
        browser = context.config.userdata['browser']
    except KeyError as ke:
        browser = None
    if browser == "chrome" or browser == None:
        binary_driver = ChromeDriverManager().download_and_install()[0]
        context.driver = webdriver.Chrome(binary_driver)
    elif browser == "firefox":
        binary_driver = GeckoDriverManager().download_and_install()[0]
        context.driver = webdriver.Firefox(executable_path=binary_driver)
    context.wait = WebDriverWait(context.driver, 5)
コード例 #13
0
ファイル: conftest.py プロジェクト: tregubova-yus/lesson8_dz
def browser(request):
    browser = request.config.getoption()
    if browser == 'Firefox':
        gdm = GeckoDriverManager()
        gdm.download_and_install()
        option = FirefoxOptions()
        # option.add_argument('--kiosk')
        option.headless = True
        wd = webdriver.Firefox(options=option)
        request.addfinalizer(wd.quit)
        return wd
    if browser == 'Chrome':
        cdm = ChromeDriverManager()
        cdm.download_and_install()
        option = ChromeOptions()
        # option.add_argument('--kiosk')
        # option.add_argument('--ignore-certificate-errors')
        option.headless = True
        wd = webdriver.Chrome(options=option)
        request.addfinalizer(wd.quit)
        return wd
    else:
        raise Exception(f'{request.param} is not supported!')
コード例 #14
0
 def download_newest_webdriver(self, dir_path, browser):
     browser_l = str(browser).lower()
     if browser_l == "firefox":
         #downlaod firefox
         GeckoDriverManager(download_root=dir_path,
                            link_path=dir_path,
                            bitness="64").download_and_install()
         print("Firefox driver downloaded " + dir_path)
     elif browser_l == "chrome":
         #download chrome
         ChromeDriverManager(download_root=dir_path,
                             link_path=dir_path,
                             bitness="64").download_and_install()
         print("Chrome driver downloaded " + dir_path)
     else:
         print("atm there is only support for firefox, chrome")
コード例 #15
0
    def __init__(self):
        logging.info("Updating Webdriver..")
        path = ChromeDriverManager().download_and_install()[0]
        options = webdriver.ChromeOptions()
        # options.add_argument('user-data-dir=./web')
        options.add_argument(
            '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'  # noqa
        )
        options.add_argument('--headless')
        options.add_experimental_option("useAutomationExtension", False)
        options.add_argument("--start-maxized")
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-log')
        options.add_argument('--loglevel=3')

        self.driver = webdriver.Chrome(path, options=options)
        self.driver.get('https://web.whatsapp.com/')
コード例 #16
0
    def setUp(self):
        paths = ChromeDriverManager().download_and_install()
        self.driver = webdriver.Chrome(paths[0])

        self.base_page = BasePage(self.driver)
        self.home_page = HomePage(self.driver)
        self.flights_page = FlightsPage(self.driver)
        self.seats_page = SeatsPage(self.driver)
        self.home_page_locators = HomePageLocators()
        self.flights_page_locators = FlightsPageLocators()
        self.seats_page_locators = SeatsPageLocators()
        self.extras_page_locators = ExtrasPageLocators()
        self.payment_page_locators = PaymentPageLocators()
        self.login_page_locators = LoginPageLocators()
        self.test_user = TestUser()

        self.driver.maximize_window()
        self.driver.get('http://ryanair.com')
def _create_driver(browser='Chrome'):
    '''
    Creates a driver
    '''
    global driver

    manager = {
        "Chrome": ChromeDriverManager(),
        "Edge": EdgeDriverManager(),
        "Firefox": GeckoDriverManager(),
        "Opera": OperaChromiumDriverManager()
    }
    drivers = {
        "Chrome": Chrome,
        "Edge": Edge,
        "Firefox": Firefox,
        "Opera": Opera
    }

    manager[browser].download_and_install()
    driver = drivers[browser]()
コード例 #18
0
from selenium import webdriver
from webdrivermanager import ChromeDriverManager
from webdrivermanager import GeckoDriverManager

broswer = 'firefox'

if broswer == 'chrome':
    driver = webdriver.Chrome(ChromeDriverManager().download_and_install())

elif broswer == 'firefox':
    driver = webdriver.Firefox(
        executable_path=GeckoDriverManager().download_and_install())

else:
    print('give valid web broswer name')

driver = webdriver.Chrome()
driver.get('http://facebook.com\login')

driver.find_element_by_id('email').send_keys(9704091318)
driver.find_element_by_id('pass').send_keys('sivaram1')
driver.find_element_by_id('loginbutton').click()
コード例 #19
0
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from webdrivermanager import ChromeDriverManager
from Product import Product
import json, time

driver = ChromeDriverManager()
driver.download_and_install()

# User Input
search_term = input("Enter the name of the product:")

# Global Variables
biggest_discount = 0.0
lowest_price = 0.0
cheapest_product = Product("", "", "", "")
best_deal_product = Product("", "", "", "")
search_terms = search_term.split(" ")
products = []

# Initialize ChromeDriver
options = Options()
webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
chrome_path = r"/Users/franktran/Library/Application Support/WebDriverManager/bin/chromedriver"
driver = webdriver.Chrome(executable_path=chrome_path, options=options)
コード例 #20
0
# pip install rpaframework
import logging
import subprocess
from RPA.Browser import Browser
from webdrivermanager import ChromeDriverManager

logging.basicConfig(
    level=logging.DEBUG,
    format="[{%(name)s:%(filename)s:%(lineno)d} %(levelname)s - %(message)s",
    handlers=[logging.FileHandler(filename="debug.log", mode="w")],
)

logger = logging.getLogger(__name__)
cdm = ChromeDriverManager()


def runcmd(command, loglabel):
    info = subprocess.run(command,
                          shell=True,
                          capture_output=True,
                          universal_newlines=True)
    logger.info(f"{loglabel} {info.stdout.strip()}")


runcmd("python --version", "PYTHON VERSION:")
runcmd("pip list", "PIP LIST:\n\n")
logger.info(f"ChromeDriverManager link path: {cdm.link_path}")
logger.info(f"ChromeDriverManager download root: {cdm.download_root}")

br = Browser()
br.open_available_browser("https://www.google.com")
コード例 #21
0
ファイル: conftest.py プロジェクト: dtopuzov/python-demos
def setup_browser():
    ChromeDriverManager().download_and_install()
コード例 #22
0
def Download_ChromeDriver():
    ChromeDriverManager().download_and_install()
コード例 #23
0
    def pilot_setup(self, options=None, waitsec=10):
        """
        Called from pilot().
        Execute web browser, and set up for auto-pilot.
        1. Setting up web browser: OPTIONS, EXTENTIONS, ...
        1. Execute web browser.
        1. Fetch some information(s) with web browser.
        """
        logger = self.logger
        msg = ''

        # Ad-hoc workaround for Google Chrome v.93 or later.
        ### See: https://stackoverflow.com/questions/69034343/chromedriver-session-timeouts-in-version-93
        options.add_argument("--disable-gpu")

        try:
            ld_webdriver = self.last_done.get('WebDriver', {})
            logger.debug(f"  -- last_done.webdriver: {ld_webdriver}")
            previous = ld_webdriver.get('Chrome', ['', datetime.datetime.min])
            logger.debug(f"  -- get_download_path() == Re-use driver.")
            driver_path = previous[0]

            logger.debug(f"  driver_path: {driver_path}")
            self.driver = webdriver.Chrome(driver_path, options=options)
        except (SessionNotCreatedException, OSError) as e:
            """
            SessionNotCreatedException: Chromeのバージョンアップを想定しWebDriverのバージョンアップを試みる。
            OSError: ChromeDriver 未取得の可能性あるため取得を試みる。
            """
            logger.warn(
                f'  !! {type(e)}: {e.args if hasattr(e,"args") else e}')
            msg += f"Maybe unmatch chromewebdriver, And try to update chrome driver... <{sys._getframe().f_lineno}@{__file__}>"
            logger.warn(f'  !! {msg}')

            try:
                cdm = ChromeDriverManager()
                logger.debug(
                    f"  -- download_and_install() == Try to update driver")
                driver_path = cdm.download_and_install()[0]
                ld_webdriver['Chrome'] = [driver_path, datetime.datetime.now()]
                self.last_done['WebDriver'] = ld_webdriver
                logger.debug(f"  driver_path: {driver_path}")
                self.driver = webdriver.Chrome(driver_path, options=options)
            except Exception as e:
                # msg += f" -- {type(e)}: {e.msg}\n"
                logger.critical(
                    f'  !! Cannot update ChromeDriver.  {self.exception_message(e)}'
                )
                msg += f"\n!! Cannot update ChromeDriver. <{sys._getframe().f_lineno}@{__file__}>.  Exit."
                msg += "\n"
        except WebDriverException as e:
            msg += f" -- {self.exception_message(e)}\n"
            msg += f"!! Cannot instantiate WebDriver<{sys._getframe().f_lineno}@{__file__}>.  Exit.\n"
            msg += "\n"
        except Exception as e:
            msg += f" -- {self.exception_message(e)}\n"
            msg += "\n"
        finally:
            if self.driver is None:
                logger.critical(msg)
                raise SessionNotCreatedException(msg)

        self.driver.implicitly_wait(waitsec)
        logger.debug(f'  -- {self.driver}')
        self.wait = WebDriverWait(self.driver, waitsec)

        return (self.driver, self.wait)
コード例 #24
0
 def launch_browser(self):
     chrome = ChromeDriverManager()
     chrome.download_and_install()
     self.driver = webdriver.Chrome()
     self.driver.get(EL.Url)
     self.driver.implicitly_wait(2)