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()
#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(