|
| 1 | +import urllib.request |
| 2 | +import time |
| 3 | + |
| 4 | +# from bs4 import BeautifulSoup |
| 5 | +from selenium import webdriver |
| 6 | +from selenium.webdriver.chrome.options import Options |
| 7 | +from selenium.webdriver.common.by import By |
| 8 | +from selenium.webdriver.support import expected_conditions as EC |
| 9 | +from selenium.webdriver.support.wait import WebDriverWait |
| 10 | + |
| 11 | + |
| 12 | +# setup selenium |
| 13 | +opts = Options() |
| 14 | +opts.add_argument('--headless') |
| 15 | +driver = webdriver.Chrome(options=opts) |
| 16 | +driver.set_window_size(1500,1000) |
| 17 | + |
| 18 | +# get resy homepage |
| 19 | +driver.get('https://resy.com') |
| 20 | +# soup_file = driver.page_source |
| 21 | +# soup = BeautifulSoup(soup_file, features="html.parser") |
| 22 | +# print(soup.title.get_text()) |
| 23 | + |
| 24 | +# click login button |
| 25 | +buttons = driver.find_elements(By.XPATH, '//button[text()="Log in"]') |
| 26 | +assert(len(buttons) == 1) |
| 27 | +b = buttons[0] |
| 28 | +b.click() |
| 29 | +WebDriverWait(driver, 10).until( |
| 30 | + EC.element_to_be_clickable((By.XPATH, '//button[text()="Use Email and Password instead"]')) |
| 31 | +) |
| 32 | +driver.save_screenshot('shots_login_1.png') |
| 33 | + |
| 34 | +# click 'email & password' button |
| 35 | +buttons = driver.find_elements(By.XPATH, '//button[text()="Use Email and Password instead"]') |
| 36 | +assert(len(buttons) == 1) |
| 37 | +b = buttons[0] |
| 38 | +b.click() |
| 39 | +time.sleep(2) |
| 40 | +driver.save_screenshot('shots_login_2.png') |
| 41 | + |
| 42 | +# fill in login info |
| 43 | +field_email = driver.find_elements(By.ID, 'email') |
| 44 | +field_passw = driver.find_elements(By.ID, 'password') |
| 45 | +assert(len(field_email) == 1) |
| 46 | +assert(len(field_passw) == 1) |
| 47 | + |
| 48 | +field_email[0].send_keys('resy@davidterei.com') |
| 49 | +field_passw[0].send_keys('Nedisgay') |
| 50 | + |
| 51 | +# login |
| 52 | +buttons = driver.find_elements(By.XPATH, '//button[text()="Continue"]') |
| 53 | +assert(len(buttons) == 1) |
| 54 | +b = buttons[0] |
| 55 | +b.click() |
| 56 | +time.sleep(2) |
| 57 | +driver.save_screenshot('shots_login_3.png') |
| 58 | + |
| 59 | +# print session |
| 60 | +print(driver.get_cookies()) |
| 61 | + |
| 62 | +# browse to TATIANA page |
| 63 | +driver.get('https://resy.com/cities/ny/tatiana') |
| 64 | +time.sleep(1) |
| 65 | +driver.save_screenshot('shots_tatiana.png') |
| 66 | + |
| 67 | +driver.quit() |
0 commit comments