Spaces:
Sleeping
Sleeping
File size: 2,762 Bytes
8430de7 aead3eb c412087 8430de7 aead3eb 492f7eb aead3eb 8430de7 c412087 8430de7 aead3eb 8430de7 aead3eb 8430de7 aead3eb 8430de7 c412087 8430de7 aead3eb c412087 aead3eb c412087 aead3eb 492f7eb c412087 aead3eb c412087 aead3eb c412087 aead3eb 492f7eb c10a05f c412087 c10a05f c412087 492f7eb 8430de7 492f7eb c412087 492f7eb c412087 8430de7 |
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 |
import os
import time
from dotenv import load_dotenv
from selenium import webdriver
from selenium.common.exceptions import UnexpectedAlertPresentException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
class SeleniumPlayer:
def __init__(self):
self.wordle_url = self.get_wordle_url()
self.driver = self.get_driver()
self.log_in()
def get_driver(self):
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
driver.get(self.wordle_url)
return driver
def get_wordle_url(self):
load_dotenv()
return os.getenv("RS_WORDLE_URL")
def get_credentials(self):
load_dotenv()
username = os.getenv("RS_WORDLE_USER")
password = os.getenv("RS_WORDLE_PASSWORD")
return username, password
def logged_in(self):
return self.driver.current_url != self.wordle_url + "/login"
def log_in(self):
if not self.logged_in():
time.sleep(2)
login_div = self.driver.find_element(By.CLASS_NAME, "login-button")
login_btns = login_div.find_elements(By.TAG_NAME, "button")
login_btn = login_btns[0]
login_btn.click()
time.sleep(10)
wordle_window = self.driver.window_handles[0]
login_window = self.driver.window_handles[1]
self.driver.switch_to.window(login_window)
username, password = self.get_credentials()
element = self.driver.find_element(By.ID, "identifierId")
element.send_keys(username)
element.send_keys(Keys.ENTER)
time.sleep(10)
element = self.driver.find_element(By.NAME, "password")
element.send_keys(password)
element.send_keys(Keys.ENTER)
self.driver.switch_to.window(wordle_window)
time.sleep(5)
onboard_div = self.driver.find_element(
By.CLASS_NAME, "onboarding-modal-container"
)
onboard_btn = onboard_div.find_elements(By.TAG_NAME, "button")
onboard_btn[-1].click()
def play_word(self, word):
try:
element = self.driver.find_element(By.TAG_NAME, "html")
# simulate typing the letters in the word into the input field
element.send_keys(word)
# simulate pressing the Enter key
element.send_keys(Keys.ENTER)
time.sleep(5)
except UnexpectedAlertPresentException:
print("Won game alert on screen")
def finish(self):
self.driver.quit()
|