Specify path to firefox binary

This commit is contained in:
Jim Martens 2020-04-04 14:29:09 +02:00
parent 12cfb4285e
commit 45813e5186
1 changed files with 10 additions and 7 deletions

View File

@ -22,8 +22,9 @@ import os
from typing import List, Tuple from typing import List, Tuple
from selenium import webdriver
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from selenium.webdriver.firefox import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.options import Options
from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.remote.webelement import WebElement
@ -38,7 +39,8 @@ _CONFIG_PROPS = {
"district": "Eimsbüttel", "district": "Eimsbüttel",
"username": "max.mustermann@eimsbuettel.de", "username": "max.mustermann@eimsbuettel.de",
"password": "SehrSicheresPasswort", "password": "SehrSicheresPasswort",
"pdflocation": "/Pfad/zum/Ablegen/der/PDFs/" "pdflocation": "/Pfad/zum/Ablegen/der/PDFs/",
"firefoxBinary": "/Pfad/zur/firefox.exe",
} }
} }
@ -67,11 +69,12 @@ def main() -> None:
username = config["Default"]["username"] username = config["Default"]["username"]
password = config["Default"]["password"] password = config["Default"]["password"]
pdf_location = config["Default"]["pdflocation"] pdf_location = config["Default"]["pdflocation"]
firefox_binary = config["Default"]["firefoxBinary"]
base_url = definitions.BASE_LINKS[district] base_url = definitions.BASE_LINKS[district]
options = Options() options = Options()
options.headless = True binary = FirefoxBinary(firefox_binary)
driver = webdriver.WebDriver(options=options) driver = webdriver.Firefox(firefox_binary=binary, options=options)
driver.implicitly_wait(2) driver.implicitly_wait(2)
driver.get(ALLRIS_LOGIN) driver.get(ALLRIS_LOGIN)
login(driver, username=username, password=password) login(driver, username=username, password=password)
@ -82,7 +85,7 @@ def main() -> None:
driver.close() driver.close()
def login(driver: webdriver.WebDriver, username: str, password: str) -> None: def login(driver: webdriver.Firefox, username: str, password: str) -> None:
login_field = driver.find_element_by_id("LoginName") login_field = driver.find_element_by_id("LoginName")
login_field.send_keys(username) login_field.send_keys(username)
password_field = driver.find_element_by_id("Password") password_field = driver.find_element_by_id("Password")
@ -91,7 +94,7 @@ def login(driver: webdriver.WebDriver, username: str, password: str) -> None:
button.click() button.click()
def get_meetings(driver: webdriver.WebDriver) -> List[meeting.Meeting]: def get_meetings(driver: webdriver.Firefox) -> List[meeting.Meeting]:
elements = driver.find_elements_by_class_name("zl12") elements = driver.find_elements_by_class_name("zl12")
elements.extend(driver.find_elements_by_class_name("zl11")) elements.extend(driver.find_elements_by_class_name("zl11"))
meetings = list() meetings = list()
@ -107,7 +110,7 @@ def get_meetings(driver: webdriver.WebDriver) -> List[meeting.Meeting]:
return meetings return meetings
def download_documents(driver: webdriver.WebDriver, meetings: List[meeting.Meeting], def download_documents(driver: webdriver.Firefox, meetings: List[meeting.Meeting],
pdf_location: str, base_url: str, district: str) -> None: pdf_location: str, base_url: str, district: str) -> None:
base_link = f"{base_url}/do027.asp" base_link = f"{base_url}/do027.asp"
for _meeting in meetings: for _meeting in meetings: