forked from wodsuz/EasyApplyJobsBot
-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
constants.py
executable file
·88 lines (73 loc) · 3.2 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
websiteUrl = "www.automated-bots.com"
contactUrl = "https://www.automated-bots.com/contact"
searchJobsUrl = "https://www.linkedin.com/jobs/search/"
searchEasyApplyJobsUrl = "https://www.linkedin.com/jobs/search/?f_AL=true"
angelCoUrl = "https://angel.co/login"
globalLogicUrl = "https://www.globallogic.com/career-search-page/"
jobsPerPage = 25
fast = 2
medium = 3
slow = 5
botSleepInBetweenActionsBottom = 4
botSleepInBetweenActionsTop = 12
botSleepInBetweenBatchesBottom = 10
botSleepInBetweenBatchesTop = 70
batchSize = 10
botSleepInBetweenSearchesBottom = 60
botSleepInBetweenSearchesTop = 180
# Webdriver Elements
jobsPageUrl = "https://www.linkedin.com/jobs"
testJobUrl = "https://www.linkedin.com/jobs/search/?currentJobId=3577461385&distance=25&f_AL=true&f_E=2&f_JT=F%2CP%2CC&f_SB2=3&f_WT=1%2C2%2C3&geoId=102221843&keywords=frontend"
testPageUrl = testJobUrl +"&start="+ str(2)
# Xpath Selectors
offersPerPageXPATH = "//li[@data-occludable-job-id]"
jobsPageCareerClassXPATH = "//div[contains(@class, 'careers')]"
totalJobsXPATH = "//small"
jobApplicationHeaderXPATH = "//h2[@id='jobs-apply-header']"
multiplePagePercentageXPATH = """
//progress[contains(@class, 'artdeco-completeness-meter-linear__progress-element')] |
//div[contains(@class, 'artdeco-completeness-meter-linear__progress')] |
//div[contains(@class, 'artdeco-progress-bar')]//progress
"""
# CSS Selectors
easyApplyButtonCSS = "button[aria-label*='Easy Apply']"
nextPageButtonCSS = "button[aria-label='Continue to next step']"
reviewApplicationButtonCSS = "button[aria-label*='Review']"
submitApplicationButtonCSS = "button[aria-label='Submit application']"
errorMessageForNecessaryFiledCSS = "div.artdeco-inline-feedback.artdeco-inline-feedback--error[data-test-form-element-error-messages]"
# TO DO ADD OTHER PRINT CONSTANTS
# Linkedin Constants
## Job Title Constants
job_title_codes = {
'Android Developer': "25166",
'Mobile Engineer': "7110",
'Mobile Application Developer': "18930",
'Scrum Master': "7586",
'Chief Technology Officer': "153",
'Director of Technology': "382",
'Head of Information Technology': "688",
'Technical Director': "200",
'Co-Founder': "103",
'Data Analyst': "340",
'Business Data Analyst': "6358",
'Business Intelligence Consultant': "733",
'Business Intelligence Analyst': "2336",
'Data Specialist': "1547",
'Data Scientist': "25190",
'Data Engineer': "2732",
'Machine Learning Engineer': "25206",
'Artificial Intelligence Engineer': "30128",
'Python Developer': "25169",
}
appliedTextXPATH = ".//*[contains(text(), 'Applied')]"
jobCardCompanyNameCSS = "[data-tracking-control-name='public_jobs_company_name']"
jobCardSubtitleCSS = "[class*='base-card__subtitle']"
jobCardMetadataCSS = "[class*='job-card-container__metadata']"
jobCardCompanyCSS = "[class*='company-name']"
jobCardTitleLinkCSS = "a[class*='job-card-list__title']"
jobCardTitleHeadingCSS = "h3[class*='job-card-list__title']"
jobCardBaseTitleCSS = "[class*='base-card__title']"
jobCardTitleLabelCSS = "[aria-label*='job title']"
jobCardDescriptionCSS = "span.job-card-container__primary-description"
jobCardContainerCSS = "li[data-occludable-job-id]"
jobCardIdAttribute = "data-occludable-job-id"