예제 #1
0
    def setup_method(self, method):
        self.assert_errors = '\n'

        browser_name = os.environ.get('BROWSER')
        if browser_name == 'firefox':
            profile = webdriver.FirefoxProfile()
            profile.set_preference("devtools.console.stdout.content", True)
            # if hasattr(method, 'portable'):
            #     profile.set_preference(
            #         "general.useragent.override",
            #         "Mozilla/5.0 (Linux; Android 8.0;"
            #         "Pixel 2 Build/OPD3.170816.012) "
            #         "AppleWebKit/537.36 (KHTML, like Gecko)"
            #         "Chrome/70.0.3538.77 Mobile Safari/537.36"
            #     )
            #     profile.update_preferences()
            firefox_options = FirefoxOptions()
            firefox_options.add_argument("-no-remote")
            firefox_options.log.level = 'trace'
            self.driver = webdriver.Firefox(firefox_profile=profile,
                                            options=firefox_options)

        elif browser_name == 'opera':
            opera_options = OperaOptions()
            opera_options.add_argument("--verbose")
            opera_options.add_argument("--enable-logging --v=1")
            opera_options.add_argument("--no-sandbox")
            opera_options.add_argument("--ignore-certificate-errors")
            opera_options.add_argument("--disable-notifications")
            opera_options.add_argument("--disable-gpu")
            opera_options.add_experimental_option('w3c', False)
            # if hasattr(method, 'portable'):
            #     opera_options.add_experimental_option(
            #         "mobileEmulation",
            #         {'deviceName': 'Nexus 5'}
            #     )
            opera_options.binary_location = '/usr/bin/opera'
            self.driver = webdriver.Opera(options=opera_options)

        else:
            options = ChromeOptions()
            options.add_argument("--verbose")
            options.add_argument("--enable-logging --v=1")
            options.add_argument("--no-sandbox")
            options.add_argument("--ignore-certificate-errors")
            options.add_argument("--disable-notifications")
            options.add_argument("--disable-gpu")
            options.add_experimental_option('w3c', False)
            if hasattr(method, 'portable'):
                options.add_experimental_option("mobileEmulation",
                                                {'deviceName': 'Nexus 5'})
            self.driver = webdriver.Chrome(chrome_options=options)

        self.driver.maximize_window()
예제 #2
0
#https://bidplus.gem.gov.in/advance-search?state_name=DELHI&city_name=CENTRAL+DELHI&from_date=18-04-2021&to_date=30-04-2021&searchlocation=Search

from selenium import webdriver
import os
import datetime
from datetime import timedelta
from selenium.webdriver.opera.options import Options

dirname = os.getcwd()
OPERADRIVER_PATH = os.path.join(dirname, "media/operadriver")
PREFPATH = os.path.join(dirname, "media/")
prefs = {"download.default_directory": PREFPATH, "directory_upgrade": True}
opts = Options()

opts.add_experimental_option("prefs", prefs)

driver = webdriver.Opera(executable_path=OPERADRIVER_PATH, options=opts)


def find_and_download(state, city, start_date, end_date):
    flag = driver.find_elements_by_xpath(
        "//strong[contains(text(), 'Empty!')]")
    url = f"https://bidplus.gem.gov.in/advance-search?state_name={state}&city_name={city}&from_date={start_date}&to_date={end_date}&searchlocation=Search&page_no=1"
    driver.get(url)
    pageno = 1
    while (flag == []):
        url = f"https://bidplus.gem.gov.in/advance-search?state_name={state}&city_name={city}&from_date={start_date}&to_date={end_date}&searchlocation=Search&page_no={pageno}"

        driver.get(url)

        items = driver.find_elements_by_xpath(