def __init__(self,
                 extra_chrome_flags=[],
                 subtract_extra_chrome_flags=[],
                 extension_paths=[],
                 username=None,
                 password=None,
                 server_port=None,
                 skip_cleanup=False,
                 url_base=None,
                 extra_chromedriver_args=None,
                 gaia_login=False,
                 disable_default_apps=True,
                 dont_override_profile=False,
                 *args,
                 **kwargs):
        """Initialize.

        @param extra_chrome_flags: Extra chrome flags to pass to chrome, if any.
        @param subtract_extra_chrome_flags: Remove default flags passed to
                chrome by chromedriver, if any.
        @param extension_paths: A list of paths to unzipped extensions. Note
                                that paths to crx files won't work.
        @param username: Log in using this username instead of the default.
        @param password: Log in using this password instead of the default.
        @param server_port: Port number for the chromedriver server. If None,
                            an available port is chosen at random.
        @param skip_cleanup: If True, leave the server and browser running
                             so that remote tests can run after this script
                             ends. Default is False.
        @param url_base: Optional base url for chromedriver.
        @param extra_chromedriver_args: List of extra arguments to forward to
                                        the chromedriver binary, if any.
        @param gaia_login: Logs in to real gaia.
        @param disable_default_apps: For tests that exercise default apps.
        @param dont_override_profile: Don't delete cryptohome before login.
                                      Telemetry will output a warning with this
                                      option.
        """
        self._cleanup = not skip_cleanup
        assert os.geteuid() == 0, 'Need superuser privileges'

        # Log in with telemetry
        self._chrome = chrome.Chrome(
            extension_paths=extension_paths,
            username=username,
            password=password,
            extra_browser_args=extra_chrome_flags,
            gaia_login=gaia_login,
            disable_default_apps=disable_default_apps,
            dont_override_profile=dont_override_profile)
        self._browser = self._chrome.browser
        # Close all tabs owned and opened by Telemetry, as these cannot be
        # transferred to ChromeDriver.
        self._browser.tabs[0].Close()

        # Start ChromeDriver server
        self._server = chromedriver_server(CHROMEDRIVER_EXE_PATH,
                                           port=server_port,
                                           skip_cleanup=skip_cleanup,
                                           url_base=url_base,
                                           extra_args=extra_chromedriver_args)

        # Open a new tab using Chrome remote debugging. ChromeDriver expects
        # a tab opened for remote to work. Tabs opened using Telemetry will be
        # owned by Telemetry, and will be inaccessible to ChromeDriver.
        urllib2.urlopen('http://localhost:%i/json/new' %
                        utils.get_chrome_remote_debugging_port())

        chromeOptions = {
            'debuggerAddress':
            ('localhost:%d' % utils.get_chrome_remote_debugging_port())
        }
        capabilities = {'chromeOptions': chromeOptions}
        # Handle to chromedriver, for chrome automation.
        try:
            self.driver = webdriver.Remote(command_executor=self._server.url,
                                           desired_capabilities=capabilities)
        except NameError:
            logging.error('selenium module failed to be imported.')
            raise
Esempio n. 2
0
 def setUp(self):
     caps = {'browserName': os.getenv('BROWSER', 'chrome')}
     self.browser = webdriver.Remote(
         command_executor='http://localhost:4444/wd/hub',
         desired_capabilities=caps)
Esempio n. 3
0
def init_driver(program, arguments):
    driver = webdriver.Remote(command_executor=APPIUM_URL,
                              desired_capabilities=desiredCapabilities)
    return driver
Esempio n. 4
0
    def __init__(self,
                 client="firefox",
                 username="******",
                 proxy=None,
                 command_executor=None,
                 loadstyles=False,
                 profile=None,
                 headless=False,
                 autoconnect=True,
                 logger=None,
                 extra_params=None,
                 chrome_options=None,
                 executable_path=None):
        """Initialises the webdriver"""

        self.logger = logger or self.logger
        extra_params = extra_params or {}

        if profile is not None:
            self._profile_path = profile
            self.logger.info("Checking for profile at %s" % self._profile_path)
            if not os.path.exists(self._profile_path):
                self.logger.critical("Could not find profile at %s" % profile)
                raise WhatsAPIException("Could not find profile at %s" %
                                        profile)
        else:
            self._profile_path = None

        self.client = client.lower()
        if self.client == "firefox":
            if self._profile_path is not None:
                self._profile = webdriver.FirefoxProfile(self._profile_path)
            else:
                self._profile = webdriver.FirefoxProfile()
            if not loadstyles:
                # Disable CSS
                self._profile.set_preference('permissions.default.stylesheet',
                                             2)
                # Disable images
                self._profile.set_preference('permissions.default.image', 2)
                # Disable Flash
                self._profile.set_preference(
                    'dom.ipc.plugins.enabled.libflashplayer.so', 'false')
            if proxy is not None:
                self.set_proxy(proxy)

            options = Options()

            if headless:
                options.set_headless()

            options.profile = self._profile

            capabilities = DesiredCapabilities.FIREFOX.copy()
            capabilities['webStorageEnabled'] = True

            self.logger.info("Starting webdriver")
            if executable_path is not None:
                executable_path = os.path.abspath(executable_path)

                self.logger.info("Starting webdriver")
                self.driver = webdriver.Firefox(
                    capabilities=capabilities,
                    options=options,
                    executable_path=executable_path,
                    **extra_params)
            else:
                self.logger.info("Starting webdriver")
                self.driver = webdriver.Firefox(capabilities=capabilities,
                                                options=options,
                                                **extra_params)

        elif self.client == "chrome":
            self._profile = webdriver.ChromeOptions()
            if self._profile_path is not None:
                self._profile.add_argument("user-data-dir=%s" %
                                           self._profile_path)
            if proxy is not None:
                self._profile.add_argument('--proxy-server=%s' % proxy)
            if headless:
                self._profile.add_argument('headless')
            if chrome_options is not None:
                for option in chrome_options:
                    self._profile.add_argument(option)
            self.logger.info("Starting webdriver")
            self.driver = webdriver.Chrome(chrome_options=self._profile,
                                           **extra_params)

        elif client == 'remote':
            if self._profile_path is not None:
                self._profile = webdriver.FirefoxProfile(self._profile_path)
            else:
                self._profile = webdriver.FirefoxProfile()
            capabilities = DesiredCapabilities.FIREFOX.copy()
            self.driver = webdriver.Remote(command_executor=command_executor,
                                           desired_capabilities=capabilities,
                                           **extra_params)

        else:
            self.logger.error("Invalid client: %s" % client)
        self.username = username
        self.wapi_functions = WapiJsWrapper(self.driver, self)

        self.driver.set_script_timeout(500)
        self.driver.implicitly_wait(10)

        if autoconnect:
            self.connect()
Esempio n. 5
0
def getDriver(glob="yes",
              host1="local",
              type1="chrome",
              executer1="default from config file"):
    d = None
    host = None
    type = None
    executer = None

    if glob == "yes":
        host = YamlReader().data['global']['host']
        type = YamlReader().data['global']['type']
        executer = YamlReader().data['global']['executer']
    elif glob == "no":
        host = host1
        type = type1
        executer = executer1
    else:
        raise "glob值非法!!"

    if host == "local":
        if type == "chrome":
            options = webdriver.ChromeOptions()
            prefs = {
                'profile.default_content_settings.popups': 0,
                'download.default_directory': DATA_PATH
            }
            options.add_experimental_option('prefs', prefs)
            options.add_argument("--start-maximized")
            d = webdriver.Chrome(executable_path=CHROMEDRIVER, options=options)
            d.maximize_window()
        elif type == "firefox":
            profile = webdriver.FirefoxProfile()
            profile.set_preference("browser.download.folderList", 2)
            profile.set_preference("browser.download.manager.showWhenStarting",
                                   False)
            profile.set_preference("browser.download.dir", DATA_PATH)
            profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
                                   "application/json;charset=UTF-8")
            d = webdriver.Firefox(executable_path=FIREFOXDRIVER,
                                  firefox_profile=profile)
            d.maximize_window()
        elif type == "phantomjs":
            d = webdriver.PhantomJS(executable_path=PHANTOMJSDRIVER)
            d.maximize_window()
        elif type == "ie":
            d = webdriver.Ie(executable_path="")
            d.maximize_window()
    elif host == "remote":

        if type == "chrome":
            d = webdriver.Remote(
                command_executor=executer,
                desired_capabilities=DesiredCapabilities.CHROME)
        elif type == "firefox":
            d = webdriver.Remote(
                command_executor=executer,
                desired_capabilities=DesiredCapabilities.FIREFOX)
            d.maximize_window()
        elif type == "phantomjs":
            d = webdriver.Remote(
                command_executor=executer,
                desired_capabilities=DesiredCapabilities.PHANTOMJS)
            d.maximize_window()
        elif type == "ie":
            d = webdriver.Remote(
                command_executor=executer,
                desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)
            d.maximize_window()
    else:
        raise "host值非法"

    return d
Esempio n. 6
0
    def __init__(self, driver="Firefox", leave_host=False, load_images=False,
                 form_submit_natural_click=False, form_submit_wait=5,
                 show_browser=False, remote_hub="http://localhost:4444/wd/hub"):
        # Needs geckodriver:
        # https://github.com/mozilla/geckodriver/releases
        # Version 0.20.1 is recommended as of 14/07/2018
        if driver == "Firefox":
            firefox_options = webdriver.firefox.options.Options()
            if not show_browser:
                logger.debug("Headless mode enabled")
                firefox_options.add_argument("--headless")
            firefox_profile = webdriver.FirefoxProfile()
            if not load_images:
                # disable images
                firefox_profile.set_preference(
                    'permissions.default.image', 2
                )
            #  disable flash
            firefox_profile.set_preference(
                'dom.ipc.plugins.enabled.libflashplayer.so', 'false'
            )
            firefox_profile.set_preference(
                'security.fileuri.strict_origin_policy', 'false'
            )
            self.driver = webdriver.Firefox(
                firefox_options=firefox_options,
                firefox_profile=firefox_profile,
            )

        # this requires chromedriver to be on the PATH
        # if using chromium and ubuntu, apt install chromium-chromedriver
        elif driver == "Chrome":
            chrome_options = webdriver.ChromeOptions()
            if not show_browser:
                chrome_options.add_argument("--headless")
                chrome_options.add_argument("--window-size=1920x1080")
            prefs = {
                "profile.managed_default_content_settings.images":2
            }
            chrome_options.add_experimental_option("prefs",prefs)
            self.driver = webdriver.Chrome(chrome_options=chrome_options)

        elif driver == "remote":
            self.driver = webdriver.Remote(
                command_executor=remote_hub,
                desired_capabilities={
                    "browserName": "chrome",
                    "goog:chromeOptions": {
                        "args": [
                            "--disable-logging",
                            "--headless",
                            "--window-size=1920x1080",
                        ],
                        "prefs": {
                            "profile.managed_default_content_settings.images": 2
                        },
                        "extensions": [],
                    }
                })

        # set of clicked elements
        self.visited = set()
        # queue of the path that led us to the current page
        # this is in the form of (command, *args, **kwargs)
        self.path = []
        # sometimes the firefox driver loses its pipe to the browser. in
        # these cases, we can retry this number of times
        self.broken_pipe_retries = 3
        # setting to False, ensures crawl will stay on same host
        self.leave_host = leave_host
        # characters that need to be escaped if found inside an ID tag
        self.css_escapables = ".:"
        self.form_submit_natural_click=form_submit_natural_click
        self.form_submit_wait=form_submit_wait
Esempio n. 7
0
def _get_selenium_browser(navigator, fLOG=noLOG):
    """
    Returns the associated driver with some custom settings.

    The function automatically gets chromedriver if not present (:epkg:`Windows` only).
    On :epkg:`Linux`, package *chromium-driver* should be installed:
    ``apt-get install chromium-driver``.

    .. faqref::
        :tag: web
        :title: Issue with Selenium and Firefox
        :lid: faq-web-selenium

        Firefox >= v47 does not work on Windows.
        See `Selenium WebDriver and Firefox 47 <http://www.theautomatedtester.co.uk/blog/2016/selenium-webdriver-and-firefox-47.html>`_.

        Voir `ChromeDriver download <http://chromedriver.storage.googleapis.com/index.html>`_,
        `Error message: 'chromedriver' executable needs to be available in the path
        <http://stackoverflow.com/questions/29858752/error-message-chromedriver-executable-needs-to-be-available-in-the-path>`_.

    See `Selenium - Remote WebDriver example
    <https://sauceclient.readthedocs.io/en/latest/selenium_on_sauce.html#selenium-remote-webdriver-example>`_,
    see also `Running the remote driver with Selenium and python <https://gist.github.com/alfredo/1962031>`_.
    """
    with warnings.catch_warnings():
        warnings.simplefilter("ignore", ImportWarning)
        from selenium import webdriver
        from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

    fLOG("[webshot] navigator=", navigator)
    if navigator == "firefox":
        firefox_capabilities = DesiredCapabilities.FIREFOX.copy()
        firefox_capabilities['marionette'] = True
        firefox_capabilities[
            'binary'] = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
        browser = webdriver.Firefox(capabilities=firefox_capabilities)
    elif navigator == "chrome":
        if sys.platform.startswith("win"):
            chromed = where_in_path("chromedriver.exe")
            if chromed is None:
                install_chromedriver(fLOG=fLOG)
                chromed = where_in_path("chromedriver.exe")
                if chromed is None:
                    raise FileNotFoundError(
                        "unable to install 'chromedriver.exe'")
            else:
                fLOG("[_get_selenium_browser] found chromedriver:", chromed)
        else:
            chromed = 'chromedriver'

        start_navi = True
        if start_navi:
            fLOG("[_get_selenium_browser] start", navigator)
            chrome_options = webdriver.ChromeOptions()
            chrome_options.add_argument('--headless')
            chrome_options.add_argument('--no-sandbox')
            chrome_options.add_argument('--verbose')
            browser = webdriver.Chrome(executable_path=chromed,
                                       chrome_options=chrome_options)
        else:
            with warnings.catch_warnings():
                warnings.simplefilter("ignore", ImportWarning)
                import selenium.webdriver.chrome.service as wservice
            fLOG("[_get_selenium_browser] create service")
            service = wservice.Service(chromed)
            fLOG("[_get_selenium_browser] start service")
            service.start()
            fLOG("[_get_selenium_browser] declare remote")
            capabilities = {'chrome.binary': chromed}
            browser = webdriver.Remote(service.service_url, capabilities)
    elif navigator == "ie":
        browser = webdriver.Ie()
    elif navigator == "opera":
        if sys.platform.startswith("win"):
            chromed = where_in_path("operadriver.exe")
            if chromed is None:
                install_operadriver(fLOG=fLOG)
                chromed = where_in_path("operadriver.exe")
                if chromed is None:
                    raise FileNotFoundError(
                        "unable to install operadriver.exe")
            else:
                fLOG("[_get_selenium_browser] found chromedriver:", chromed)
        else:
            chromed = 'operadriver'
        browser = webdriver.Opera(chromed)
    elif navigator == "edge":
        browser = webdriver.Edge()
    else:
        raise Exception(
            "unable to interpret the navigator '{0}'".format(navigator))
    fLOG("[_get_selenium_browser] navigator is started")
    return browser
 def setUp(self):
     self.driver = webdriver.Remote(
         command_executor='http://dw-autotest-dev:4444/wd/hub',
         desired_capabilities=DesiredCapabilities.FIREFOX)
import time
import random
import webbrowser
import pandas as pd
import urllib.request
from tqdm import tqdm
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

service = Service('/Users/rock/tor/CC_bitChute/chromedriver')
service.start()
driver = webdriver.Remote(service.service_url)
driver.get('https://www.bitchute.com/channel/NaturalNews/')

for i in tqdm(range(15)):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
    time.sleep(3)

element = []
for i in driver.find_elements_by_class_name('spa'):
    element.append(i)

titles = [x.get_attribute('href') for x in element]

pd.DataFrame(titles).to_csv('BitChuteCC_titles2020.csv', index=False)
titles = pd.read_csv('BitChuteCC_titles2020.csv')
 def setUp(self):
     self.driver = webdriver.Remote(
         command_executor='http://selenium-chrome:4444/wd/hub/',
         desired_capabilities=DesiredCapabilities.CHROME)
Esempio n. 11
0
 def setUp(self):
     opts = webdriver.FirefoxOptions()
     opts.headless = True
     self.driver = webdriver.Remote(
         command_executor='http://192.168.3.14:4444/wd/hub',
         desired_capabilities=opts.to_capabilities())
Esempio n. 12
0
    def __init__(self,
                 console_url,
                 webdriver_url=None,
                 sauce=False,
                 browser=None,
                 version=None,
                 platform=None):
        """
        Initiates a  tester object. Initiates a copy of the browser. Opens console_url.
        :param webdriver_url:
        :param console_url:
        :param account:
        :param user:
        :param password:
        """

        if sauce is True:
            if browser == "ie":
                desired_capabilities = webdriver.DesiredCapabilities.INTERNETEXPLORER
            elif browser == "chrome":
                desired_capabilities = webdriver.DesiredCapabilities.CHROME
            else:
                desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
            desired_capabilities['version'] = version
            desired_capabilities['platform'] = platform
            desired_capabilities[
                'name'] = 'Testing ' + browser + ' ' + version + ' on ' + platform
            self.driver = webdriver.Remote(
                webdriver_url, desired_capabilities=desired_capabilities)

        if sauce is False:
            ffprofile = webdriver.FirefoxProfile()
            ffprofile.set_preference("browser.download.folderList", 2)
            ffprofile.set_preference(
                "browser.download.manager.showWhenStarting", False)
            ffprofile.set_preference("browser.download.dir", "/tmp/")
            ffprofile.set_preference("browser.helperApps.alwaysAsk.force",
                                     False)
            ffprofile.set_preference(
                "browser.helperApps.neverAsk.saveToDisk",
                "application/x-pem-file, text/csv, application/xml, text/plain, image/jpeg, application/x-apple-diskimage, application/zip"
            )
            desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
            desired_capabilities['version'] = version
            desired_capabilities['platform'] = platform
            #desired_capabilities['name'] = 'Testing ' + browser + ' ' + version + ' on ' + platform
            #self.driver = webdriver.Remote(webdriver_url, webdriver.DesiredCapabilities.FIREFOX)

            ffprofile.update_preferences()

            if webdriver_url is None:
                self.driver = webdriver.Firefox(firefox_profile=ffprofile)
                print "Using local webdriver"

            else:
                self.driver = webdriver.Remote(
                    webdriver_url,
                    desired_capabilities=desired_capabilities,
                    browser_profile=ffprofile)
                print "Using remote webdriver " + webdriver_url
            print "Setting webdriver profile"
        self.driver.implicitly_wait(60)
        #        self.driver.maximize_window()
        self.driver.set_window_size(1024, 768)
        self.driver.get(console_url)
Esempio n. 13
0
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

desired_cap = {
    'browser': 'Chrome',
    'browser_version': '81.0 beta',
    'os': 'Windows',
    'os_version': '10',
    'resolution': '1024x768',
    'name': 'Bstack-[Python] Sample Test'
}

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

driver.get('http://akashsuper2000.github.io/faculty-dashboard')

time.sleep(2)

username = driver.find_element_by_name('id')
username.send_keys('sample')

password = driver.find_element_by_name('password')
password.send_keys('password')
time.sleep(2)
subbut = driver.find_element_by_xpath("//input[@type='submit']")
subbut.click()
Esempio n. 14
0
 def setUp(self):
     self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                                    desired_capabilities=DesiredCapabilities.CHROME)
Esempio n. 15
0
print("Will use tool '%s'" % (tool.get_name()))

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))

print("Starting chrome...")

serv = service.Service('./chromedriver')
serv.start()
capabilities = {
    'chrome.binary': '/Applications/Google\ Chrome.app'
}

driver = webdriver.Remote(serv.service_url, capabilities)
driver.get('http://neutral.x0.com/home/sushida/play2.html')

driver.execute_script("document.body.style.zoom = '2.0'")
driver.execute_script('window.scrollTo(230, 250)')
driver.execute_script('window.resizeTo(1050, 750)')

# set up game by hand
time.sleep(12)

# Start game
driver.find_element_by_tag_name("embed").send_keys(Keys.SPACE)

# ready set go
time.sleep(2)
Esempio n. 16
0
def env_browser(request):
    """Create a webdriver instance of the browser specified by request.
    The default browser is Firefox.  The webdriver instance is killed after the
    number of seconds specified by the ``E2E_WEBDRIVER_TIMEOUT`` variable or
    defaults to 300 (five minutes).
    """
    timeout = int(os.environ.get('E2E_WEBDRIVER_TIMEOUT', 300))

    def wait_kill():
        time.sleep(timeout)
        browser.quit()

    def finalizer():
        browser.quit()
        timeout_process.terminate()

    timeout_process = multiprocessing.Process(target=wait_kill)

    sauce_username = os.environ.get('SAUCE_USERNAME', '')
    sauce_access_key = os.environ.get('SAUCE_ACCESS_KEY', '')
    remote_url = \
        "https://%s:%[email protected]:443/wd/hub" \
        % (sauce_username, sauce_access_key)

    # the desired_capabilities parameter tells us which browsers and OS to spin up.
    desired_cap = {
        'platform':
        'Windows',
        'browserName':
        'chrome',
        'build':
        os.environ.get('GITHUB_RUN_ID',
                       datetime.utcnow().strftime("%Y-%m-%d %H:00ish")),
        'name':
        request.node.name,
        'username':
        sauce_username,
        'accessKey':
        sauce_access_key,
        'tunnelIdentifier':
        os.environ.get('GITHUB_RUN_ID', ''),
        'screenResolution':
        '1280x1024'
    }

    if not RUN_SELENIUM_LOCALLY:
        # This creates a webdriver object to send to Sauce Labs including the desired capabilities
        browser = webdriver.Remote(remote_url,
                                   desired_capabilities=desired_cap)
    else:
        # Run tests locally instead of on Sauce Labs (requires local chromedriver installation).
        browser = getattr(webdriver, request.param)()

    browser.set_window_size(1280, 1024)

    # Go to homepage and click cookie accept button so cookie bar is out of the way
    browser.get(flask.url_for('hepdata_theme.index', _external=True))
    wait = WebDriverWait(browser, 10)
    wait.until(
        EC.visibility_of_element_located(
            (By.CSS_SELECTOR, ".cc_btn_accept_all")))
    sleep(1)
    cookie_accept_btn = browser.find_element_by_css_selector(
        ".cc_btn_accept_all")
    cookie_accept_btn.click()

    # Add finalizer to quit the webdriver instance
    request.addfinalizer(finalizer)

    timeout_process.start()
    yield browser

    # Check browser logs before quitting
    log = browser.get_log('browser')
    assert len(log) == 0, \
        "Errors in browser log:\n" + \
        "\n".join([f"{line['level']}: {line['message']}" for line in log])
Esempio n. 17
0
def before_request():
    driver = webdriver.Remote(
        command_executor=selenium_url,
        desired_capabilities=DesiredCapabilities.CHROME.copy())
    g.driver = driver
Esempio n. 18
0
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

options = webdriver.ChromeOptions()
# chrome_options.add_argument("--hide-scrollbars")

# options = webdriver.FirefoxOptions()

driver = webdriver.Remote(command_executor='http://selenium-hub:4444/wd/hub', options=options)
driver.get_window_size()
driver.get("https://www.google.co.jp")
driver.save_screenshot("./screen.png")
print(driver.name)
driver.quit()
from selenium import webdriver
from selenium.webdriver import ChromeOptions

options = ChromeOptions()
desired_caps = options.to_capabilities()
desired_caps['platform'] = 'Linux'
browser = webdriver.Remote(desired_capabilities=desired_caps)
Esempio n. 20
0
def browser():
    return webdriver.Remote(
        command_executor='{}/wd/hub'.format(REMOTE_SELENIUM),
        desired_capabilities=DesiredCapabilities.CHROME)
Esempio n. 21
0
import os
import requests
import ruamel.yaml as yaml
import time
import json
from selenium import webdriver
from selenium.webdriver.common import desired_capabilities

# driver = webdriver.Chrome()
caps = desired_capabilities.DesiredCapabilities.CHROME
driver = webdriver.Remote(command_executor="http://127.0.0.1:4444/wd/hub",
                          desired_capabilities=caps)
driver.get("https://www.davincilifestyle.com/contracts/acerbis/")
try:
    logo_element = driver.find_element_by_css_selector(
        ".vc_single_image-img.lazyloaded")
    logo_link = logo_element.get_attribute("src")
    r = requests.get(logo_link, stream=True, allow_redirects=False)
    if r.status_code == 200:
        open(f'files/logo_test1.jpg', 'wb').write(r.content)
        print(f"========== LOGO SUCCESS ==========")
        del r
except Exception:
    print(f"!!!!!!!!!! LOGO FAILED !!!!!!!!!!")
driver.close()

# with open("lists/brands_list.json", "r") as f:
#     brands_list = json.load(f)
# brands_list[time.time()] = time.ctime()
# brands_json = json.dumps(brands_list, indent=4)
# with open("lists/brands_list.json", "w+") as f:
Esempio n. 22
0
from selenium import webdriver as wd
from selenium.webdriver import DesiredCapabilities

# setup grid in local, refrence :

hubUrl = 'http://169.254.166.115:4444/wd/hub'
capability = DesiredCapabilities.CHROME.copy()
firefoxCaps = DesiredCapabilities.FIREFOX.copy()

ChromeRemoteOPtions = wd.ChromeOptions()
# FFopts = wd.FirefoxOptions()
# ffdriver = wd.Remote(command_executor=hubUrl,desired_capabilities=firefoxCaps,options=FFopts)
# ffdriver.get("http://freecrm.com")
# print(ffdriver.title)
# ffdriver.quit()
driver = wd.Remote(command_executor=hubUrl,
                   desired_capabilities=capability,
                   options=ChromeRemoteOPtions)

driver.get("https://freecrm.com")
print(driver.title)
driver.quit()
Esempio n. 23
0
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import unittest, time, re

desired_cap = []
desired_cap.append({'browserName': 'chrome', 'platform': 'LINUX'})
desired_cap.append({'browserName': 'firefox', 'platform': 'LINUX'})

for driver_instance in desired_cap:
    driver_instance['browserstack.debug'] = True
    driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',
                              desired_capabilities=driver_instance)

    driver.implicitly_wait(30)

    driver.get("http://www.google.com")

    search_field = driver.find_element_by_id("lst-ib")
    search_field.clear()

    search_field.send_keys("Jenkins Selenium WebDriver")
    search_field.submit()
    driver.get_screenshot_as_file('google.png')

    lists = driver.find_elements_by_class_name("_Rm")

    print("Found " + str(len(lists)) + "searches:")
Esempio n. 24
0
from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://127.0.0.1:32768/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

driver.get('https://www.baidu.com')
print("get baidu")

driver.find_element_by_id("kw").send_keys("docker selenium")
driver.find_element_by_id("su").click()

sleep(1)

driver.get_screenshot_as_file("/home/fnngj/mypro/baidu_img.png")

driver.quit()
print("end...")
Esempio n. 25
0
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

browser = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                           desired_capabilities=DesiredCapabilities.CHROME)

browser = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                           desired_capabilities=DesiredCapabilities.OPERA)
browser = webdriver.Remote(
    command_executor='http://127.0.0.1:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.HTMLUNITWITHJS)
Esempio n. 26
0
def insta_user_details(chrome_path,
                       user_urls,
                       dir_name,
                       creds,
                       executor_url=None,
                       session_id=None):
    """
    Take user urls and get follower information
    *** NOTE THAT INSTAGRAM WILL BAN AFTER ~ 500 SCRAPED WITHIN AN HOUR. NOT USABLE FOR LARGER SCRAPES
    Args:
    urls: List of urls for Instagram posts
    dir_name: directory to save user_log.csv into
    creds: dict with keys user,pass to log into Instagram
    executor,session_id: Parameters generated by an existing chromedriver instance. Use if re startng scraping to avoid logging in again.
    Returns:

    Side Effect:
    Saves user_log.csv to dir_name folder with followers per username
    """
    if executor_url is None and session_id is None:
        options = Options()
        # options.add_argument('--headless')
        # options.add_argument('--no-sandbox') #removed to see if it would help chrome windows not closing
        options.add_argument("--disable-gpu")
        # options.add_argument('user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 105.0.0.11.118 (iPhone11,8; iOS 12_3_1; en_US; en-US; scale=2.00; 828x1792; 165586599)')
        # options.add_argument('--remote-debugging-port=9222')

        # Setup chromedriver. Loop through urls before checking for each item.
        browser = Chrome(options=options, executable_path=chrome_path)
        print("Executor Url", str(browser.command_executor._url))
        print("Session ID:", str(browser.session_id))

        browser = login_browser(browser, creds)
    else:
        # Connect to existing
        browser = webdriver.Remote(command_executor=executor_url,
                                   desired_capabilities={})
        # browser.close()   # this prevents the dummy browser
        # browser.session_id = session_id

    total_user_details = []

    url_count = 0
    for url in user_urls:

        print(
            "\r Processing User: "******"/" +
            str(len(user_urls)),
            flush=True,
            end="",
        )

        try:
            browser.get(url)

            followers = browser.find_element_by_xpath(
                """//*[@id="react-root"]/section/main/div/header/section/ul/li[2]/a/span"""
            ).text

            following = browser.find_element_by_xpath(
                """//*[@id="react-root"]/section/main/div/header/section/ul/li[3]/a/span"""
            ).text

            try:
                profile = browser.find_element_by_xpath(
                    """//*[@id="react-root"]/section/main/div/header/section/div[2]/span"""
                ).text
            except:
                print("Issue getting profile statement for account ", url)
                profile = ""

            user_details = {
                "account_name": url.split("/")[-2],
                "followers": followers,
                "following": following,
                "profile": profile,
            }

            total_user_details.append(user_details)

            url_count += 1
            time.sleep(5)

            if url_count % 100 == 0:
                write_to_file(
                    total_user_details,
                    os.path.join(dir_name, "user_details.csv"),
                    fieldnames=[
                        "account_name", "followers", "following", "profile"
                    ],
                )
        except:
            print("Issues with Profile", url)

    browser.close()

    write_to_file(
        total_user_details,
        os.path.join(dir_name, "user_details.csv"),
        fieldnames=["account_name", "followers", "following", "profile"],
    )
Esempio n. 27
0
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                          desired_capabilities=DesiredCapabilities.FIREFOX)

#driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
# Find <.... name="q" ...> ...</...>
elem = driver.find_element_by_name("q")
print(elem)
# elem is an input, so clear is to clear the input
elem.clear()
# Write "pycon"
elem.send_keys("pycon")
# Press ENTER
elem.send_keys(Keys.RETURN)
# Assert if string in the page
assert "No results found." not in driver.page_source
# Close Selenium driver
results = driver.find_element_by_xpath(
    '//[@id="content"]/div/section/form/ul/li[1]/h3')
print(results)
driver.close()
def init_driver():
    driver = webdriver.Remote(
        command_executor="http://localhost:4444/wd/hub",
        desired_capabilities=DesiredCapabilities.FIREFOX,
    )
    return driver
Esempio n. 29
0
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

driver = webdriver.Remote(
    'http://localhost:4444/wd/hub',
    desired_capabilities=webdriver.DesiredCapabilities.CHROME)

driver.get("https://www.w3schools.com/html/default.asp")
time.sleep(5)
all_cookies = driver.get_cookies()
print(all_cookies)
 def setUp(self):
     opts = webdriver.FirefoxOptions()
     opts.add_argument('headless')
     self.driver = webdriver.Remote(
         command_executor='http://192.168.122.60:4444/wd/hub',
         desired_capabilities=opts.to_capabilities())