Exemple #1
0
def create_webdriver():
    if WEBDRIVER_TYPE == 'CHROME':
        return chrome.WebDriver()

    if WEBDRIVER_TYPE == 'REMOTE_CHROME':
        return remote.WebDriver(command_executor='http://selenium:4444/wd/hub',
                                options=webdriver.ChromeOptions())

    raise Exception(f"bad webdriver type {WEBDRIVER_TYPE}")
def step_impl(context):
    """
    :type context: behave.runner.Context
    """
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    driver = webdriver.WebDriver(chrome_options=chrome_options)
    driver.get('http://localhost:5000/admin/')
    setattr(context, 'driver', driver)
Exemple #3
0
 def setUpClass(cls) -> None:
     cls.url = MAIN_URL_HOME
     cls.driver = webdriver.WebDriver(CHROME_DRIVER_LOCATION)
     cls.driver.get(cls.url)
     cls.driver.maximize_window()
     cls.driver.find_element_by_id('sign-in').click()
     time.sleep(DELAY_SHORT)
     cls.driver.find_element_by_xpath('//*[@id="sign-in"]/div[3]/a').click()
     time.sleep(DELAY_SHORT)
Exemple #4
0
def get_chrome():
    chrome_options = Options()
    chrome_options.binary_location = os.environ['GOOGLE_CHROME_BIN']
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    # chrome_options.add_argument('--headless')
    driver = webdriver.WebDriver(executable_path=os.environ['CHROMEDRIVER_PATH'],
                                 chrome_options=chrome_options)

    return driver
Exemple #5
0
 def get_firefox_driver(cls) -> FirefoxWebDriver:
     if cls.firefox_driver is None:
         firefox_options = firefoxdriver.Options()
         # firefox_options.add_argument("--headless")
         desired_capabilities = {'applicationCacheEnabled': False}
         cls.firefox_driver = chromedriver.WebDriver(
             options=firefox_options,
             desired_capabilities=desired_capabilities)
         cls.firefox_driver.implicitly_wait(10)  # seconds
     return cls.firefox_driver
Exemple #6
0
def test_search():
    drw = webdriver.WebDriver(
        '/Users/sosninvitaliy/Desktop/google/webdriver/chromedriver')
    drw.get('http://www.google.ru')
    drw.maximize_window()
    element = WebDriverWait(drw, 20)\
    .until(expected_conditions.
    presence_of_element_located((By.XPATH, '//div[@aria-label="Голосовой поиск"]/../..//input')))

    element.send_keys('selenide', Keys.ENTER)

    element = wait_and_get_element('(//h3)[1]/..', driver=drw)
    str = element.get_attribute('href')

    if str == 'https://ru.selenide.org/':
        print(
            f'Ссылка "{str}" совпадает с ожидаемым результатом "https://ru.selenide.org/" '
        )
    else:
        pytest.fail(
            f'Ссылка "{str}" не совпадает с ожидаемым результатом "https://ru.selenide.org/"'
        )

    element = drw.find_element_by_xpath(
        '//a[text() = "Ещё"]/ancestor::g-header-menu')
    element.click()

    element = drw.find_element_by_xpath('//a[text() = "Картинки"]')
    element.click()

    element = wait_and_get_element('//*[@id="rg_s"]/div[1]/a[2]/div[2]',
                                   driver=drw)
    pic = element.text.strip()

    i = "selenide.org" in pic

    if i:
        print(
            'Изображение связано с сайтом selenide.org так как под ним содержится ссылка на сайт selenide.org'
        )
    else:
        print('Изображение не связано с сайтом selenide.org')

    element = drw.find_element_by_xpath('//a[text() = "Все"]')
    element.click()

    element = wait_and_get_element('(//h3)[1]/..', driver=drw)
    con = element.get_attribute('href')

    if con == str:
        print(
            "Ссылки на сайт одинаковы, так как ссылка при первом шаге равна ссылке при третьем шаге"
        )
    else:
        print("Ссылки не одинаковы")
Exemple #7
0
 def setUpClass(cls):
     chrome_options = Options()
     chrome_options.add_argument('--headless')
     # Following two lines needed to fix "selenium.common.exceptions.WebDriverException: Message: unknown error:
     # Chrome failed to start: crashed" in Travis CI
     chrome_options.add_argument('--window-size=1024,768')
     chrome_options.add_argument('--no-sandbox')
     chrome_options.add_argument('--log-level=3')
     cls.selenium = webdriver.WebDriver(
         executable_path=chromedriver_binary.chromedriver_filename,
         chrome_options=chrome_options)
     cls.password = random_string_generator()
     super(CreatePostIntegrationTest, cls).setUpClass()
Exemple #8
0
    def test_clicking(self):
        cmd = "cd ../EDA_miner && python app.py"
        # Thanks: https://stackoverflow.com/a/4791612/6655150
        pro = subprocess.Popen(cmd,
                               stdout=subprocess.PIPE,
                               shell=True,
                               preexec_fn=os.setsid)

        # Wait till the server boots up
        time.sleep(10)

        chromedriver = os.environ["CHROMEDRIVER"]

        # Make sure the window is maximized and start a webdriver
        chrome_options = options.Options()
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--disable-gpu')
        chrome_options.add_argument('--window-size=1420,1080')
        chrome_options.add_argument('--no-sandbox')
        chrome = webdriver.WebDriver(chromedriver, options=chrome_options)

        # Navigate to the page
        chrome.get("http://127.0.0.1:8050")
        time.sleep(2)

        # Get and iterate over the high-level and low-level tabs
        high_level_tabs = chrome.find_elements_by_class_name("nav_links")
        for hlt in high_level_tabs:
            hlt.click()
            time.sleep(1)

            low_level_tab_menu = chrome.find_element_by_id("selected_subpage")
            low_level_tabs = low_level_tab_menu.find_elements_by_class_name(
                "tab")

            for llt in low_level_tabs:
                print(llt.text)
                llt.click()
                time.sleep(1)

        # re-run after checking the last element,
        # because that might have broken the page
        llt.click()
        time.sleep(1)

        # Close the webdriver
        chrome.quit()

        # kill the server
        # TODO: Does this indeed kill the server?
        os.killpg(os.getpgid(pro.pid), signal.SIGTERM)
Exemple #9
0
 def initialize_webdriver(url):
     options = Options()
     # options.add_argument('--headless')
     options.add_argument('--disable-gpu')
     chrome_driver = webdriver.WebDriver(executable_path=EXECUTABLE_PATH, chrome_options=options)
     chrome_driver.get(url)
     time.sleep(4)
     button = chrome_driver.find_element_by_xpath("//*[@id=\"fc\"]/div[1]/div[1]/div[1]/button[1]/span")
     time.sleep(2)
     button.click()
     time.sleep(2)
     button.click()
     chrome_driver.set_window_size(1200, 1080)
     return chrome_driver
Exemple #10
0
    def setup_class(cls):

        # Start the server and wait till is loads
        cmd = "cd ../EDA_miner && gunicorn wsgi:application"
        cls.server = subprocess.Popen(cmd,
                                      stdout=subprocess.PIPE,
                                      shell=True,
                                      preexec_fn=os.setsid)
        time.sleep(7)

        # Start a webdriver
        chrome_options = options.Options()
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--disable-gpu')
        chrome_options.add_argument('--no-sandbox')
        cls.chrome = webdriver.WebDriver(chromedriver, options=chrome_options)
Exemple #11
0
def tor_driver() -> 'WebDriver':
    """Tor (``.onion``) driver.

    Returns:
        selenium.webdriver.chrome.webdriver.WebDriver: The web driver object with Tor proxy settings.

    See Also:
        * :func:`darc.selenium.get_options`
        * :func:`darc.selenium.get_capabilities`

    """
    options = get_options('tor')
    capabilities = get_capabilities('tor')

    # initiate driver
    driver = selenium_webdriver.WebDriver(options=options,
                                          desired_capabilities=capabilities)
    return driver
Exemple #12
0
def null_driver() -> 'WebDriver':
    """No proxy driver.

    Returns:
        selenium.webdriver.chrome.webdriver.WebDriver: The web driver object with no proxy settings.

    See Also:
        * :func:`darc.selenium.get_options`
        * :func:`darc.selenium.get_capabilities`

    """
    options = get_options('null')
    capabilities = get_capabilities('null')

    # initiate driver
    driver = selenium_webdriver.WebDriver(options=options,
                                          desired_capabilities=capabilities)
    return driver
def test_search():
    driver = webdriver.WebDriver('chromedriver.exe')
    driver.get("http://google.ru/")
    element = get_element(field_search, driver)
    element.click()
    element.send_keys('Selenide', Keys.ENTER)
    element = get_element(first_result, driver)
    checklink = element.get_attribute('href')
    assert "https://ru.selenide.org/" in checklink
    element = get_element(text_more, driver)
    element.click()
    element = get_element(pictures, driver)
    element.click()
    print(2)
    element = get_element(first_picture_site, driver)
    checkpicture = element.text.strip()
    assert "selenide.org" in checkpicture
    driver.back()
    element = get_element(first_result_after_back, driver)
    checkfirstlinkagain = element.get_attribute('href')
    assert checkfirstlinkagain in checklink
Exemple #14
0
def test_search():
    driver = webdriver.WebDriver('chromedriver.exe')
    driver.get("http://google.ru/")
    element = get_element(field_search, driver)
    element.click()
    element.send_keys('Selenide', Keys.ENTER)
    element = get_element(first_result, driver)
    checklink = element.get_attribute('href')

    if checklink == 'https://ru.selenide.org/':
        print('Первая ссылка совпадает с "https://ru.selenide.org!"')
    else:
        pytest.fail(f'Link"{checklink}" not equal "https://ru.selenide.org/')
    element = get_element(text_more, driver)
    element.click()
    element = get_element(pictures, driver)
    element.click()
    element = get_element(first_picture, driver)
    checkpicture = element.get_attribute('alt')
    i = "Selenide" in checkpicture
    if i:
        print("Соотносится с Selenide")
    else:
        print("Не соотносится с Selenide")
    element = get_element(first_picture_site, driver)
    checkpicture = element.text.strip()
    i = "selenide.org" in checkpicture
    if i:
        print('Соотносится с сайтом "selenide.org"')
    else:
        print('Не соотносится с сайтом "selenide.org"')

    driver.back()
    element = get_element(first_result_after_back, driver)
    checkfirstlinkagain = element.get_attribute('href')
    if checkfirstlinkagain == checklink:
        print('Совпадают ссылки после возврата на основную страницу')
    else:
        pytest.fail(
            f'Link"{checkfirstlinkagain}" not equal "https://ru.selenide.org/')
Exemple #15
0
def set_driver(path, args):
    if args.browser.lower() == 'chrome':
        try:
            print("Chrome Driver")
            option = CHop()
            option.add_argument(('--none', '--headless')[not args.use_gui])
            return CHdr.WebDriver(executable_path=path, options=option)
        except SessionNotCreatedException:
            _exception_print('Chrome', 'ChromeDriver',
                             'https://chromedriver.chromium.org/downloads')
    elif args.browser.lower() == 'firefox':
        try:
            print("Gecko Driver")
            option = FFop()
            option.add_argument(('-none', '-headless')[not args.use_gui])
            return FFdr.WebDriver(executable_path=path, options=option)
        except SessionNotCreatedException:
            _exception_print(
                'Firefox', 'GeckoDriver',
                'https://github.com/mozilla/geckodriver/releases')
    else:
        raise InvalidBrowserException("No Appropriate webdriver found!")
Exemple #16
0
 def crawl(self, url):
     print '# begin crawl #'
     browser = webdriver.WebDriver()
     browser.get(url)
     jd_input = browser.find_element_by_id('key')
     jd_input.send_keys('手机'.decode('utf-8'))
     jd_input.send_keys(Keys.ENTER)
     time.sleep(5)
     page = int(
         browser.find_element_by_class_name(
             'p-skip').find_element_by_css_selector('b').text)
     phone_model = list()
     evaluation_number = list()
     price = list()
     merchant = list()
     i = 0
     while i < page:
         print i
         time.sleep(3)
         html = self.downloader.download(browser)
         phone_model_temp, evaluation_number_temp, price_temp, merchant_temp = self.parser.parse(
             html)
         phone_model += phone_model_temp
         evaluation_number += evaluation_number_temp
         price += price_temp
         merchant += merchant_temp
         print len(phone_model)
         print len(evaluation_number)
         print len(price)
         print len(merchant)
         next_page = browser.find_element_by_class_name('pn-next')
         next_page.click()
         i += 1
     self.outputer.collect_data(phone_model, evaluation_number, price,
                                merchant)
     browser.close()
Exemple #17
0
    def test(self):
        h = webdriver.WebDriver()
        def wait():
            return WebDriverWait(h, 10)

        h.get(self.live_server_url + '/admin/login/?next=/flight/1/')

        wait().until(EC.presence_of_element_located((By.ID, 'id_username')))
        wait().until(EC.presence_of_element_located((By.ID, 'id_password')))
        wait().until(EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]')))
        h.find_element_by_css_selector('#id_username').send_keys(self.username)
        h.find_element_by_css_selector('#id_password').send_keys(self.password)
        h.find_element_by_css_selector('input[type="submit"]').click()

        wait().until(EC.presence_of_element_located((By.NAME, 'number_of_seats')))
        wait().until(EC.presence_of_element_located((By.NAME, 'passenger')))
        wait().until(EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]')))
        h.find_element_by_name('number_of_seats').send_keys("1")
        h.find_element_by_name('passenger').send_keys("User Userski")
        h.find_element_by_css_selector('input[type="submit"]').click()

        wait().until(EC.presence_of_element_located((By.XPATH, "//li[text()='User Userski']")))

        h.close()
def test_search():

        driver = webdriver.WebDriver('D:\PyCharmProjects\SAP_SF\chromedriver.exe')
        driver.implicitly_wait(60)
        driver.get("http://google.ru/")
        element = wait_and_get_element(driver, "field_search")
        element.click()
        element.send_keys('Selenide', Keys.ENTER)
        element = wait_and_get_element(driver, "first_result")
        checklink = element.get_attribute('href')
        assert "https://ru.selenide.org/" in checklink
        print(checklink + " first result is correct")
        element = wait_and_get_element(driver, "text_more")
        element.click()
        element = wait_and_get_element(driver, "pictures")
        element.click()
        element = wait_and_get_element(driver, "first_picture_site")
        checkpicture = element.text.strip()
        assert "selenide.org" in checkpicture
        print("First picture is corresponded to Selenide website")
        driver.back()
        element = wait_and_get_element(driver, "first_result_after_back")
        checkfirstlinkagain = element.get_attribute('href')
        assert checkfirstlinkagain in checklink
Exemple #19
0
    def __init__(self, contact):

        chrome_options = Options()
        chrome_options.add_argument("--disable-gpu")
        chrome_options.add_argument("start-maximized")
        chrome_options.add_argument("disable-infobars")
        chrome_options.add_argument("--disable-extensions")
        chrome_options.add_argument("--disable-dev-shm-usage")
        chrome_options.add_argument("--no-sandbox")
        exe_path = os.path.join(BASE_PATH, 'chromedriver.exe')
        chromedrvr_path = os.path.join(
            os.path.dirname(os.path.abspath("__file__")), exe_path)
        self.wd = webdriver.WebDriver(chromedrvr_path, options=chrome_options)
        self.wd.implicitly_wait(300)
        print("Navigating to chrome")
        self.wd.get("https://web.whatsapp.com/")
        print("Waiting for page to load")
        search_bar = self.wd.find_element_by_xpath(
            '//*[@id="side"]//div[contains(text(), "Search or start new chat")]/following::label//div[@contenteditable]'
        )
        search_bar.send_keys(contact)
        self.wd.implicitly_wait(10)
        group = self.wd.find_element_by_xpath('//span[@title="%s"]' % contact)
        group.click()
Exemple #20
0
def before_all(context):
    path = ('{}/chromedriver'.format(getcwd()))
    context.driver = webdriver.WebDriver(executable_path=path)
Exemple #21
0
 def setUpClass(cls) -> None:
     cls.url = MAIN_URL_HOME
     cls.driver = webdriver.WebDriver(CHROME_DRIVER_LOCATION)
     cls.driver.get(cls.url)
     time.sleep(DELAY_SHORT)
     cls.driver.maximize_window()
    elif plat_info.startswith("Windows"):
        driver_path = "chromedrivers/chromedriver_win32/chromedriver.exe"
    else:
        raise Exception(f"不支持平台: {plat_info}")
    return driver_path


if __name__ == "__main__":

    args = make_args()

    configs_path = args.configs

    driver_path = get_driver_path()

    driver = webdriver.WebDriver(executable_path=driver_path)
    # driver.implicitly_wait(60)

    # 逐个填写
    for path in configs_path:
        config = json.load(open(path, "r", encoding="utf-8"))
        config_check(config)
        get_in_page(driver, config)
        write_info(driver, config)
        submit(driver, config)
        get_in_history(driver)
        save_screen_shot(driver)
        logout(driver)
        if config["微信通知key"]:
            wechat_notification(userName=config["学号"],
                                sckey=config["微信通知key"],
Exemple #23
0
import io

from PIL import Image
from selenium.webdriver.chrome import webdriver


def get_concat_v(im1, im2):
    dst = Image.new('RGB', (im1.width, im1.height + im2.height))
    dst.paste(im1, (0, 0))
    dst.paste(im2, (0, im1.height))
    return dst


if __name__ == '__main__':
    driver = webdriver.WebDriver('resources/chromedriver.exe')
    driver.maximize_window()
    driver.get('https://chromedriver.chromium.org/capabilities')
    slices = []
    scroll_height = driver.execute_script('return document.body.scrollHeight')
    size = driver.get_window_size()
    current_height = 0
    window_height = size['height']
    slices.append(driver.get_screenshot_as_png())
    current_height += window_height

    while current_height + window_height < scroll_height:
        driver.execute_script(f'window.scrollTo(0, {current_height + 1})')
        slices.append(driver.get_screenshot_as_png())
        current_height += window_height

    remaining_height = scroll_height - current_height
Exemple #24
0
 def __init__(self):
     self.driver = webdriver.WebDriver()
     self.driver.maximize_window()
 def setUpClass(cls) -> None:
     cls.url = PUBLIC_PROFILE
     cls.driver = webdriver.WebDriver(CHROME_DRIVER_LOCATION)
     cls.driver.get(cls.url)
     cls.driver.maximize_window()
     time.sleep(DELAY_SHORT)
Exemple #26
0
 def from_crawler(cls, crawler):
     # This method is used by Scrapy to create your spiders.
     s = cls()
     s.driver = webdriver.WebDriver(executable_path="chromedriver.exe")
     crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
     return s
 def test(self):
     self.driver = webdriver.WebDriver()
     self.driver.get("http://www.baidu.com")
     self.driver.implicitly_wait(3)
     self.driver.maximize_window()
Exemple #28
0
 def get_driver() -> webdriver.WebDriver:
     if browser().lower() == 'chrome':
         driver = 'chromedriver'
     else:
         raise NotImplemented(f'Browser {browser} not supported.')
     return webdriver.WebDriver(executable_path=f'../drivers/{driver}')
Exemple #29
0
# -*- coding: utf-8 -*-
from selenium import *
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import json

from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.WebDriver("./chromedriver")


class scarpping(object):
    def waitforelement(self, findwhat, value):
        wait = WebDriverWait(driver, 120)
        if findwhat == "id":
            lookfor = driver.find_element_by_id(str(value))
            element = wait.until(EC.visibility_of(lookfor))
        if findwhat == "class":
            lookfor = driver.find_element_by_class_name(str(value))
            element = wait.until(EC.visibility_of(lookfor))
        if findwhat == "css":
            lookfor = driver.find_element_by_css_selector(
                By.CSS_SELECTOR, str(value))
            element = wait.until(EC.visibility_of(lookfor))

    def initbrowser(self):
Exemple #30
0
 def setUpClass(cls):
     cls.selenium = webdriver.WebDriver()
     super(BasicTestWithSelenium, cls).setUpClass()