Files
2023-02-07 09:48:26 -03:00

71 lines
1.9 KiB
Python

# type: ignore
# Selenium - Automatizando tarefas no navegador
from pathlib import Path
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
# Chrome Options
# https://peter.sh/experiments/chromium-command-line-switches/
# Doc Selenium
# https://selenium-python.readthedocs.io/locating-elements.html
# Caminho para a raiz do projeto
ROOT_FOLDER = Path(__file__).parent
# Caminho para a pasta onde o chromedriver está
CHROME_DRIVER_PATH = ROOT_FOLDER / 'drivers' / 'chromedriver'
def make_chrome_browser(*options: str) -> webdriver.Chrome:
chrome_options = webdriver.ChromeOptions()
# chrome_options.add_argument('--headless')
if options is not None:
for option in options:
chrome_options.add_argument(option)
chrome_service = Service(
executable_path=str(CHROME_DRIVER_PATH),
)
browser = webdriver.Chrome(
service=chrome_service,
options=chrome_options
)
return browser
if __name__ == '__main__':
TIME_TO_WAIT = 10
# Example
# options = '--headless', '--disable-gpu',
options = ()
browser = make_chrome_browser(*options)
# Como antes
browser.get('https://www.google.com')
# Espere para encontrar o input
search_input = WebDriverWait(browser, TIME_TO_WAIT).until(
EC.presence_of_element_located(
(By.NAME, 'q')
)
)
search_input.send_keys('Hello World!')
search_input.send_keys(Keys.ENTER)
results = browser.find_element(By.ID, 'search')
links = results.find_elements(By.TAG_NAME, 'a')
links[0].click()
# Dorme por 10 segundos
sleep(TIME_TO_WAIT)