Skip to content

Instantly share code, notes, and snippets.

@aliboy08
Created August 17, 2025 10:37
Show Gist options
  • Save aliboy08/9d213325647729f20b0045679311a8ae to your computer and use it in GitHub Desktop.
Save aliboy08/9d213325647729f20b0045679311a8ae to your computer and use it in GitHub Desktop.
Web Bot Python + Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class Web_Bot :
def __init__(self):
driver = webdriver.Chrome()
self.driver = driver
def get(self, url):
self.driver.get(url)
self.scroll_to_end()
def scroll_to_end(self):
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
def populate_fields(self, data):
for row in data :
by, selector = self.get_selector(row[0])
el = self.driver.find_element(by, selector)
el.send_keys(row[1])
def click(self, selector_string, by_set = False, wait_duration = 20):
by, selector = self.get_selector(selector_string, by_set)
WebDriverWait(self.driver, wait_duration).until(
EC.element_to_be_clickable((by, selector))
).click()
def ready(self, selector_string, by_set = False, wait_duration = 20):
by, selector = self.get_selector(selector_string, by_set)
WebDriverWait(self.driver, wait_duration).until(
EC.element_to_be_clickable((by, selector))
)
self.scroll_to_end()
def get_selector(self, selector_string, by_set = None):
if by_set :
return by_set, selector_string
selector = selector_string[1:]
if selector_string[0] == '.' :
return By.CLASS_NAME, selector
if selector_string[0] == '#' :
return By.ID, selector
def quit(self):
self.driver.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment