Ejemplo n.º 1
0
def download_data(browser_object: webdriver,
                  config_object: configparser.ConfigParser) -> BeautifulSoup:
    browser_object.get(config_object["rekyl_portal"]["url"])
    time.sleep(1)

    username = browser_object.find_element_by_id("username")
    password = browser_object.find_element_by_css_selector(
        "input[type=password")

    username.send_keys(config_object["rekyl_portal"]["username"])
    password.send_keys(config_object["rekyl_portal"]["password"])

    browser_object.find_element_by_id("button_login_security_low").click()

    time.sleep(3)

    show_errands = Select(browser_object.find_element_by_name("maxhits"))

    show_errands.select_by_index(10)
    time.sleep(5)
    browser_object.find_element_by_name("maxhits").send_keys(Keys.RETURN)
    time.sleep(5)

    iframe = browser_object.find_element_by_id("iframe_workorder")
    browser_object.switch_to.frame(iframe)
    iframe_source = browser_object.page_source
    soup = BeautifulSoup(iframe_source, "html.parser")

    browser_object.close()
    browser_object.quit()
    logging.info("Raw data downloaded")

    return soup
Ejemplo n.º 2
0
def execSearch(browser: webdriver, inifile):

    # 検索ワード抽出
    browser.get(_get(inifile, 'search', 'url_trend'))
    contents = browser.find_elements_by_tag_name('h1')
    searchWords = []
    for content in contents:
        searchWords.append(content.text)
    searchWords.pop(0)
    searchWords.pop(0)

    # ログインボタンの押下(検索、メールDEポイント共通)
    browser.get(_get(inifile, 'search', 'url') + '/Web?qt=' + searchWords[0])
    searchWords.pop(0)
    browser.find_element_by_link_text(_get(inifile, 'search',
                                           'login_context')).click()

    login_user = browser.find_element_by_name(_get(inifile, 'user', 'id_name'))
    login_user.send_keys(_get(inifile, 'user', 'id'))
    login_password = browser.find_element_by_name(
        _get(inifile, 'user', 'pass_name'))
    login_password.send_keys(_get(inifile, 'user', 'pass'))
    browser.find_element_by_name("submit").click()
    sleep(_getRandomNum())

    ## 検索ワードを一つずつ処理
    for index, searchWord in enumerate(searchWords):
        search_box = browser.find_element_by_name("qt")
        search_box.clear()
        search_box.send_keys(searchWord)
        browser.find_element_by_id('searchBtn').click()
        sleep(_getRandomNum())
Ejemplo n.º 3
0
def execLogin(browser: webdriver, inifile):

    # Googleにアクセス
    browser.get(_get(inifile, 'init', 'url'))

    # ログインボタンの押下
    browser.find_element_by_link_text(_get(inifile, 'init', 'login_context')).click()
    sleep(_getRandomNum())

    login_user = browser.find_element_by_name(_get(inifile, 'user', 'id_name'))
    login_user.send_keys(_get(inifile, 'user', 'id'))
    login_password = browser.find_element_by_name(_get(inifile, 'user', 'pass_name'))
    login_password.send_keys(_get(inifile, 'user', 'pass'))
    browser.find_element_by_name("submit").click()
    sleep(_getRandomNum())
Ejemplo n.º 4
0
def execSearch(browser: webdriver):
    """
    Googleで検索を実行する
    :param browser: webdriver
    """

    # スクリーンショットのファイル名用に日付を取得
    dt = datetime.datetime.today()
    dtstr = dt.strftime("%Y%m%d%H%M%S")

    # get request
    browser.get("http://www.python.org")

    # check words int title
    assert "Python" in browser.title

    # select input elem
    elem = browser.find_element_by_name("q")
    # send key
    elem.clear()
    elem.send_keys("pycon")
    elem.send_keys(Keys.RETURN)

    # exists results?
    assert "No results found." not in browser.page_source

    # brower close (quit: close one tab)
    browser.close()
Ejemplo n.º 5
0
    def save(self, browser: webdriver):
        """

        """
        save_elem = browser.find_element_by_name("save")
        if save_elem:
            save_elem.click()
Ejemplo n.º 6
0
def execSearch(browser: webdriver):
    """
    京大の課題サイトにアクセスし、未実行の課題を教える。
    """
    browser.get('https://cas.ecs.kyoto-u.ac.jp/cas/login?service=https%3A%2F%2Fpanda.ecs.kyoto-u.ac.jp%2Fsakai-login-tool%2Fcontainer')
    sleep(1)

    #ログイン
    user_id = browser.find_element_by_name("username")
    user_id.clear()
    user_id.send_keys(settings.USN)

    password = browser.find_element_by_name("password")
    password.clear()
    password.send_keys(settings.PWD)

    login = browser.find_element_by_class_name("btn-submit")
    login.click()
    sleep(1)

    #各科目のページに遷移
    base_url = browser.current_url
    
    
    links = {
    "弾性体の力学解析":"2020-110-3200-000",
    "流体力学":"2020-110-3165-000",
    "一般力学":"2020-110-3010-100",
    "基礎有機化学I":"2020-888-N347-014",
    "地球環境学のすすめ":"2020-888-Y201-001",
    "社会基盤デザインI":"2020-110-3181-000",
    "工業数学B2":"2020-110-3174-000",
    "確率統計解析及び演習":"2020-110-3003-000",
    "水文学基礎":"2020-110-3030-000",
    "地球工学基礎数理":"2020-110-3005-000",
    }
    
    # nav = browser.find_element_by_id("2020-110-3165-000")
    for subject,link_id in links.items():
        unkadai(base_url,subject,link_id)
Ejemplo n.º 7
0
def execSearch(browser: webdriver):
    """
    Googleで検索を実行する
    :param browser: webdriver
    """
    # スクリーンショットのファイル名用に日付を取得
    dt = datetime.datetime.today()
    dtstr = dt.strftime("%Y%m%d%H%M%S")

    # Googleにアクセス
    browser.get('https://www.google.co.jp/')
    sleep(1)

    # キーワードの入力
    browser.find_element_by_id('lst-ib').send_keys('docker selenium')

    # 検索実行
    browser.find_element_by_name('btnK').submit()
    sleep(1)

    # スクリーンショット
    browser.save_screenshot('images/' + dtstr + '.png')
def do_login(driver: webdriver, start_date, end_date, property):
    # Getting Home Page
    driver.get("https://live.mycloudhospitality.com/Login/Common/Index.aspx")
    # Disabling Captcha
    driver.execute_script(
        '$("#lblHiddenSuppressCaptchaValidation")[0].value = "Y"')
    # Login and Passsword {FILL IT BEFORE RUNNING}

    with open('config.json') as f:
        data = json.load(f)

    driver.find_element_by_name('txtUserNameEmailId').send_keys(
        data['username'])
    driver.find_element_by_name('txtPassword').send_keys(data['password'])

    #Click Login
    driver.find_element_by_name('btnLogin').click()
    wait_short = WebDriverWait(driver, 10)
    wait_long = WebDriverWait(driver, 400)

    # Select the Property based on argument passed
    # element = wait_short.until(
    #     EC.element_to_be_clickable((By.ID, f"dgChangeProperty_btnOpenChangeProperty_{property}"))
    # )
    # element.click()
    element = wait_short.until(EC.element_to_be_clickable((By.ID, "imgCPMS")))
    element.click()
    element = wait_short.until(
        EC.element_to_be_clickable((By.ID, "btnReportsWelcome")))
    element.click()
    element = wait_short.until(
        EC.element_to_be_clickable((By.ID, "txtSearchReports")))
    element.send_keys('Guest Transaction')
    element = wait_short.until(
        EC.element_to_be_clickable((By.ID, "btnSearchReports")))
    element.click()
    wait_short.until(EC.invisibility_of_element((By.ID, "overlayProcess")))
    element = wait_short.until(
        EC.presence_of_element_located(
            (By.XPATH, '//*[@id="dgReportsList"]/tbody/tr[3]/td[4]')))
    element.click()
    wait_short.until(EC.element_to_be_clickable((By.ID, "cmbDatefrom")))
    # Passing in start and end date based on parameters given
    # print(start_date, end_date)
    driver.execute_script(f'$("#cmbDatefrom")[0].value = "{start_date}"')
    driver.execute_script(f'$("#cmbDateto")[0].value = "{end_date}"')

    element = wait_short.until(
        EC.element_to_be_clickable((By.ID, "btnOkReports")))
    element.click()
    # wait_short.until(
    #     EC.invisibility_of_element((By.ID, "overlayProcess"))
    # )

    wait_long.until(EC.invisibility_of_element((By.ID, "overlayProcess")))
    #End of Loop
    time.sleep(5)
    return
def execSearch(assignBrowser: webdriver):
    dateString = datetime.datetime.today().strftime("%Y%m%d%H%M%S")

    # Open the browser with assign URL
    assignBrowser.get('https://google.com')

    # Input keyword in search field
    search_box = assignBrowser.find_element_by_name("q")
    search_box.send_keys('WilliamTai.moe')

    # Submit search
    search_box.submit()

    # Take screenshot and save to local disk
    assignBrowser.save_screenshot('./tmp/selenium_screenshot/' + dateString +
                                  '.png')
def login_github(browser: webdriver):
    browser.find_element_by_name("login").send_keys(USERNAME)
    sleep(1)
    browser.find_element_by_name("password").send_keys(PASSWORD)
    sleep(1)
    browser.find_element_by_name("commit").send_keys(
        Keys.ENTER)  # Same as Line 43.
    # browser.find_element_by_name("commit").click()
    sleep(
        30
    )  # Input GitHub Verification Code Within 30 Seconds, or You Can Delete this Line.
Ejemplo n.º 11
0
def work_wos_citations_request(browser: webdriver, title: str):
    url = ScholarURLType.BASE.value + ScholarURLType.SEARCH.value.replace(
        '<title>', title).replace('"', '\\"')

    wait()
    browser.execute_script(f"""window.open("{url}","_blank");""")  # request
    WebDriverWait(browser, 10).until(EC.number_of_windows_to_be(2))
    requestmeter.count()

    browser.switch_to.window(
        browser.window_handles[1])  # changes to the new tab
    WebDriverWait(browser,
                  10).until(EC.presence_of_element_located((By.NAME, 'q')))
    search_box = browser.find_element_by_name('q')  # gets the search box
    search_box.send_keys(title)  # puts the query
    search_box.submit()  # send the request

    WebDriverWait(browser,
                  10).until(EC.presence_of_element_located((By.NAME, 'q')))

    return BeautifulSoup(browser.page_source, 'html.parser')
Ejemplo n.º 12
0
def logIn(driver: webdriver, user_id: str, password: str):
    driver.get("https://classroom.google.com/u/0/h")
    while (True):
        driver.find_element_by_id("identifierId").send_keys(user_id)
        driver.find_element_by_id("identifierNext").click()
        time.sleep(3)
        if len(driver.find_elements_by_name("password")) > 0:
            break
        try:
            temp = driver.find_element_by_id("identifierId").get_attribute(
                "outerHTML")
            temp = temp[temp.index("aria-invalid") + 14]
            if temp == 't':
                user_id = input("Invalid mail-id. \nPlease enter mail-id:")
                driver.find_element_by_id("identifierId").clear()
            else:
                print(
                    "Kindly try again. One of the following reasons may be possible for the error:\n1. No internet connection\n2. You have 2-factor authentication enabled for your mail account"
                )
                driver.get("https://classroom.google.com/u/0/h")
                time.sleep(3)
                if '0/h' in driver.current_url:
                    return True
                return False
        except:
            print(
                "Kindly try again. One of the following reasons may be possible for the error:\n1. No internet connection\n2. You have 2-factor authentication enabled for your mail account"
            )
            driver.get("https://classroom.google.com/u/0/h")
            time.sleep(3)
            if '0/h' in driver.current_url:
                return True
            return False
    while (True):
        WebDriverWait(driver, timeout=10).until(
            expected_conditions.visibility_of_element_located(
                (By.NAME, "password"))).send_keys(password)
        driver.find_element_by_id("passwordNext").click()
        time.sleep(3)
        if '0/h' in driver.current_url:
            return True
        try:
            temp = driver.find_element_by_id("password").get_attribute(
                "outerHTML")
            temp = temp[temp.index("aria-invalid") + 14]
            if temp == 't':
                password = getpass.getpass(
                    prompt='Invalid password. Please enter your password: '******'0/h' in driver.current_url:
                    return True
                return False
        except:
            if '0/h' in driver.current_url:
                return True
            driver.get("https://classroom.google.com/u/0/h")
            time.sleep(3)
            if '0/h' in driver.current_url:
                return True
            print(
                "Kindly try again. One of the following reasons may be possible for the error:\n1. No internet connection\n2. You have 2-factor authentication enabled for your mail account"
            )
            return False
Ejemplo n.º 13
0
def find_password_element(driver: webdriver):
    return driver.find_element_by_name('param3')
Ejemplo n.º 14
0
def find_login_element(driver: webdriver):
    return driver.find_element_by_name('param1')
Ejemplo n.º 15
0
def google_search(driver: webdriver, search_word: str):
    search_area = driver.find_element_by_name("q")
    search_area.clear()
    search_area.send_keys(search_word)
    search_area.submit()
Ejemplo n.º 16
0
def CLR_Html(browser: webdriver, Name: str) -> str:
    """
    a = CLR_Html(self.b, ['page_name', 'profile_message_send', 'profile_action_btn', 'profile_msg_split'])
    print(a)
    :param Name:
    :param browser:
    :return:
    """

    res = []
    all_res = []
    # a = Soport_webdriver.CLR_Html(b,['mail_box_send'])
    for name in Name:

        try:
            all_res.append(browser.find_element_by_id(name).text)
            res.append('find_element_by_id')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_name(name).text)
            res.append('find_element_by_name')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_xpath(name).text)
            res.append('find_element_by_xpath')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_link_text(name).text)
            res.append('find_element_by_link_text')
        except:
            pass

        try:
            all_res.append(
                browser.find_element_by_partial_link_text(name).text)
            res.append('find_element_by_partial_link_text')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_tag_name(name).text)
            res.append('find_element_by_tag_name')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_class_name(name).text)
            res.append('find_element_by_class_name')
        except:
            pass

        try:
            all_res.append(browser.find_element_by_css_selector(name).text)
            res.append('find_element_by_css_selector')
        except:
            pass

    io = ''
    for x in range(len(res)):
        io += '{} |-| {} |-| {}\n'.format(str(Name[x]), str(res[x]),
                                          str(all_res[x]))
    return io