Skip to content
This repository was archived by the owner on Jun 25, 2024. It is now read-only.

Commit

Permalink
🐛 Added chrome support
Browse files Browse the repository at this point in the history
  • Loading branch information
nico-i committed Oct 4, 2023
1 parent 3b6fff8 commit adc0b8c
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions src/trello_scraper.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

from util.models import Browser


def get_board_json(driver, config):

Expand All @@ -20,35 +22,40 @@ def get_board_json(driver, config):
log_in_btn.click()

# email field
email_txt_field = driver.find_element(By.ID, "username")
wait.until(lambda _: email_txt_field.is_displayed())
email_txt_field = wait.until(
EC.presence_of_element_located((By.ID, "username")))
email_txt_field.send_keys(config.email)

# continue button
continue_btn = driver.find_element(By.ID, "login-submit")
wait.until(lambda _: continue_btn.is_displayed())
continue_btn = wait.until(
EC.presence_of_element_located((By.ID, "login-submit")))
continue_btn.click()

driver.implicitly_wait(5)

# wait for password field and login
pw_txt_field = driver.find_element(By.ID, "password")
wait.until(lambda _: pw_txt_field.is_displayed())
pw_txt_field = wait.until(
EC.presence_of_element_located((By.ID, "password")))
pw_txt_field.send_keys(config.password, Keys.ENTER)

driver.implicitly_wait(5)

# wait for boards to load
content_div = driver.find_element(By.ID, "content")
content_div = wait.until(
EC.presence_of_element_located((By.ID, "content")))
wait.until(lambda _: content_div.is_displayed())

driver.get(config.board_url + ".json")

raw_data_btn = wait.until(
EC.presence_of_element_located((By.ID, "rawdata-tab")))
raw_data_btn.click()
if(config.browser == Browser.FIREFOX.value):
raw_data_btn = wait.until(
EC.presence_of_element_located((By.ID, "rawdata-tab")))
raw_data_btn.click()

raw_data_pre = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'pre.data')))
EC.presence_of_element_located((By.TAG_NAME, "pre")))
raw_json = raw_data_pre.text

board_json = json.loads(raw_json)

driver.quit()
Expand Down

0 comments on commit adc0b8c

Please sign in to comment.