Example #1
0
def getJobSearchResults(browser):
    BO.waitForElementLocated(browser, 'apply', how='class')
    page_results = browser.find_elements_by_class_name('apply')
    results = []
    for item in page_results:
        results.append(item)
    return results
Example #2
0
def getBlockJobs(browser, block='Technology'):
    allowed = ['Technology']
    browser.get(MAINURL)
    BO.waitForElementLocated(browser, block, how='link')
    if block in allowed:
        element = browser.find_element_by_link_text(block)
        browser.get(element.get_attribute('href'))
Example #3
0
def searchForJobs():
    BO.waitForElementLocated(browser, "edit-search-0", how='id')
    BO.waitForElementLocated(browser, "edit-location-0", how='id')
    kw = browser.find_element_by_id("edit-search-0")
    loc = browser.find_element_by_id("edit-location-0")
    kw.send_keys(search)
    loc.send_keys(location)
    loc.send_keys(Keys.RETURN)
Example #4
0
def getJobSearchResults(browser):
    pathLocator = "//div/h2/a"
    BO.waitForElementLocated(browser, pathLocator, how='xpath')
    page_results = browser.find_elements_by_xpath(pathLocator)
    results = []
    for item in page_results:
        results.append(item)
    return results
Example #5
0
def getContractType(browser, identifier):
    BO.waitForElementLocated(browser, identifier, how='class')
    elements = browser.find_elements_by_class_name(identifier)
    for element in elements:
        ele = element.find_element_by_xpath(
            './/span[@class = "summary-detail-field-label"]')
        if ele.text == 'Contract Type:':
            el = element.find_element_by_xpath(
                './/span[@class = "summary-detail-field-value"]')
            return el.text
Example #6
0
def getJobSearchResults(browser):
    firstLocator = "jobs"
    BO.waitForElementLocated(browser, firstLocator, how='class')
    superElement = browser.find_element_by_class_name(firstLocator)
    locator = "job-link"
    BO.waitForElementLocated(browser, locator, how='class')
    page_results = superElement.find_elements_by_class_name(locator)
    results = []
    for item in page_results:
        results.append(item)
    return results
Example #7
0
def loginToSite(browser, us):
    BO.waitForElementLocated(
        browser,
        'CPHMain_CPHContent_CandidateLogin1_Login1_UserName',
        how='id')
    email = browser.find_element_by_id(
        'CPHMain_CPHContent_CandidateLogin1_Login1_UserName')
    email.send_keys(us.username['GMail'])
    pw = browser.find_element_by_id(
        'CPHMain_CPHContent_CandidateLogin1_Login1_Password')
    pw.send_keys(us.password['GMail'])
    browser.execute_script(
        "document.getElementById('CPHMain_CPHContent_CandidateLogin1_Login1_LoginButton').click();"
    )
Example #8
0
def applyThroughCV(browser, us):
    BO.waitForElementLocated(browser, 'JOBG811', how='id')
    fn = browser.find_element_by_id('JOBG82')
    ln = browser.find_element_by_id('JOBG83')
    email = browser.find_element_by_id('JOBG811')
    fn.send_keys(us.personal['firstName'])
    ln.send_keys(us.personal['lastName'])
    email.send_keys(us.personal['email'])
    BO.waitForElementLocated(browser, 'chkPrefill', how='id')
    browser.execute_script("document.getElementById('chkPrefill').click();")
    element = browser.find_element_by_id('JOBG810019')
    element.find_element_by_xpath("//option[text()='Yes']").click()
    browser.find_element_by_id('JOBG837').send_keys(us.personal['CVPath'])
    time.sleep(3)
    browser.execute_script("document.getElementById('buttonApply').click();")
    time.sleep(2)
Example #9
0
def getJobDetails(browser):
    details = {}
    BO.waitForElementLocated(browser, 'searchContainer', how='class')
    masterElement = browser.find_element_by_class_name('searchContainer')
    name = masterElement.find_element_by_class_name("searchTitle")
    details['jobName'] = name.text
    #there are 2 search specifics:
    #1st contains company - 0 and location - 1
    #2nd contains reference - 3, contact - 1 and type - 0 (2 is date of publication)
    BO.waitForElementLocated(browser, 'searchSpecifics', how='class')
    elements = masterElement.find_elements_by_class_name('searchSpecifics')
    details['reference'] = getDetail(elements[1], 'Referencia')
    details['contact'] = getDetail(elements[1], 'Contato')
    details['location'] = elements[0].find_elements_by_class_name('searchRightCol')[1].text
    details['company'] = elements[0].find_elements_by_class_name('searchRightCol')[0].text#getDetail(elements[0], 'Anunciante')
    details['type'] = getDetail(elements[1], 'Tipo de emprego')
    return details
Example #10
0
def getBlockJobsAndApply():
    us = User('f')
    if os.path.isfile(us.personal['LogPathJobsInGeneva']):
        reflst = DL.getReferencesFromLog(us.personal['LogPathJobsInGeneva'])
    else:
        reflst = set()
    #here, unlike in pagepersonnel, the mainurl
    #contains already every job
    browser = BO.openNewBrowser(MAINURL)
    #we are now in page 1 of the results
    #for each page I wish to apply to every job
    applyToAllUrls(browser, reflst, us)
    while BO.isElementPresent(browser,'Next', 'link'):
        element = browser.find_element_by_link_text('Next')
        url = element.get_attribute('href')
        browser.get(url)
        applyToAllUrls(browser, reflst, us)
        time.sleep(2)
    time.sleep(5)
Example #11
0
def applyThroughCV(browser, us):
    BO.waitForElementLocated(browser, 'apply-with-cv-link', how='id')
    browser.execute_script(
        "document.getElementById('apply-with-cv-link').click();")
    fn = browser.find_element_by_id('edit-firstname')
    ln = browser.find_element_by_id('edit-lastname')
    tp = browser.find_element_by_id('edit-telephone')
    email = browser.find_element_by_id('edit-email')
    fn.send_keys(us.personal['firstName'])
    ln.send_keys(us.personal['lastName'])
    tp.send_keys(us.personal['telephone'])
    email.send_keys(us.personal['email'])
    browser.find_element_by_id(
        'edit-field-3rd-party-file-upload-und-0').send_keys(
            us.personal['CVPath'])  #works!
    browser.execute_script(
        "document.getElementsByClassName('option')[0].click();")
    time.sleep(3)
    browser.execute_script("document.getElementById('edit-submit').click();")
Example #12
0
def applyToAllUrls(browser, reflst, us):
    jobsearchurl = browser.current_url
    res = getJobSearchResults(browser)
    links = BO.getLinksFromElements(res)
    for link in links:
        browser.get(link)
        # we must verify that the page is the standard application page
        # neither is from indeed, or a vacancy completed or forbiden
        if BO.isElementPresent(browser,'searchContainer'):
            #if this element is present, we are in the correct page
            details = getJobDetails(browser)
            details['path'] = us.personal['LogPathJobsInGeneva']
            if str(details['reference']) not in reflst:
                applyToJob(browser, us)
                details['method'] = 'CV'
                DL.writeLogToCSV(details)
                reflst.add(details['reference'])
                time.sleep(2)
    browser.get(jobsearchurl)
    time.sleep(3)
Example #13
0
def getBlockJobsAndApply():
    us = User('f')
    if os.path.isfile(us.personal['LogPathPagePersonnel']):
        reflst = DL.getReferencesFromLog(us.personal['LogPathPagePersonnel'])
    else:
        reflst = set()
    browser = BO.openNewBrowser(MAINURL)
    getBlockJobs(browser, 'Technology')
    toggleFilters(browser)
    selectLanguage(browser)
    #we are now in page 1 of the results
    #for each page I wish to apply to every job
    applyToAllUrls(browser, reflst, us)
    while BO.isElementPresent(browser, 'show-more-pager'):
        element = browser.find_element_by_class_name('show-more-pager')
        element = element.find_element_by_tag_name('a')
        url = element.get_attribute('href')
        browser.get(url)
        applyToAllUrls(browser, reflst, us)
        time.sleep(2)
    time.sleep(5)
Example #14
0
def getBlockJobsAndApply():
    us = User('f')
    if os.path.isfile(us.personal['LogPathExperis']):
        reflst = DL.getReferencesFromLog(us.personal['LogPathExperis'])
    else:
        reflst = set()
    browser = BO.openNewBrowser(MAINURL)
    #we are now in page 1 of the results
    #for each page I wish to apply to every job
    applyToAllUrls(browser, reflst, us)
    BO.waitForElementLocated(browser,
                             'pagingHeader_lnkNextPageItem',
                             how='id',
                             delay=30)
    #BUG : TODO
    while BO.isElementPresent(browser,
                              'pagingHeader_lnkNextPageItem',
                              how='id'):
        browser.execute_script(
            "document.getElementById('pagingHeader_lnkNextPageItem').click();")
        applyToAllUrls(browser, reflst, us)
        time.sleep(2)
    time.sleep(10)
Example #15
0
def applyThroughWebSite(browser, us):
    if BO.isElementPresent(
            browser,
            'CPHMain_CPHContent_CandidateLogin1_Login1_UserName',
            how='id'):
        loginToSite(browser, us)
    BO.waitForElementLocated(
        browser,
        'ctl00_CPHMain_CPHContent_AsyncFileUploader_RadAsyncUpload1file0',
        how='id')
    browser.find_element_by_id(
        'ctl00_CPHMain_CPHContent_AsyncFileUploader_RadAsyncUpload1file0'
    ).send_keys(us.personal['CVPath'])
    browser.execute_script(
        "document.getElementById('CPHMain_CPHContent_rdoCandidateFiles_4').click();"
    )
    with open(us.personal['CoverText1'], 'r') as myfile:
        data = myfile.read()
    browser.find_element_by_id('CPHMain_CPHContent_txtCoverNote').send_keys(
        data)
    time.sleep(2)
    browser.execute_script(
        "document.getElementById('CPHMain_CPHContent_btnSubmit').click();")
Example #16
0
def applyToAllUrls(browser, reflst, us):
    jobsearchurl = browser.current_url
    res = getJobSearchResults(browser)
    links = BO.getLinksFromElements(res)
    for link in links:
        browser.get(link)
        details = getJobDetails(browser)
        details['path'] = us.personal['LogPathPagePersonnel']
        if str(details['reference']) not in reflst:
            applyToJob(browser, us)
            details['method'] = 'CV'
            DL.writeLogToCSV(details)
            reflst.add(details['reference'])
    browser.get(jobsearchurl)
    time.sleep(3)
Example #17
0
def applyThroughLinkedIn(browser, us):
    BO.waitForElementLocated(browser, 'linkedin-form-apply', how='class')
    ele = browser.find_element_by_class_name('linkedin-form-apply')
    BO.waitForElementLocated(browser, 'a', how='tag')
    el = ele.find_element_by_tag_name('a')
    browser.get(el.get_attribute('href'))
    loginLinkedIn(browser, us)
    BO.waitForElementLocated(browser, "edit-telephone")
    tel = browser.find_element_by_id('edit-telephone')
    tel.send_keys(us.personal['telephone'])
    browser.execute_script(
        "document.getElementById('edit-privacy-data-2').click();")
    browser.execute_script("document.getElementById('edit-submit').click();")
Example #18
0
def loginLinkedIn(browser, us):
    BO.waitForElementLocated(browser, "session_key-oauth2SAuthorizeForm")
    credentials = us.getAppCredentials('LinkedIn')
    elements = ("session_key-oauth2SAuthorizeForm",
                "session_password-oauth2SAuthorizeForm")
    BO.login(browser, elements, credentials)
Example #19
0
def getDetail(browser, identifier):
    BO.waitForElementLocated(browser, identifier, how='class')
    ele = browser.find_element_by_class_name(identifier)
    return ele.text
Example #20
0
def toggleFilters(browser):
    ID = "browse-filter-toggle"
    BO.waitForElementLocated(browser, ID)
    ele = browser.find_element_by_id(ID)
    ele.click()
Example #21
0
def selectLanguage(browser, language='English'):
    BO.waitForElementLocated(browser, language, how='link')
    ele = browser.find_element_by_link_text(language)
    browser.get(ele.get_attribute('href'))