Honestly while you can use a local driver for selenium your much better off just using one of the docker images here and using a remote connection. If you insist on the local driver then your probably going to want to use a web driver manager to handle that for you so your systems browser doesn’t mess with it.
this post was submitted on 07 Jan 2024
6 points (100.0% liked)
Selenium Web Browser Automation
101 readers
4 users here now
Users forum for selenium browser testing. Do not advertise here.
founded 2 years ago
MODERATORS
I need to scrape an internal website using the system browser via --marionette Eventually this will be turned into a windows script. I tried using webdriver-manager and got it working but I still need to specify a path to firefox and the site is internal. This is my script in Windows - it doesn't work. It uses GeckDriverManager but I'd prefer a hardcoded path.
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from webdriver_manager.firefox import GeckoDriverManager
options = Options()
options.binary = FirefoxBinary(r'C:\Program Files\Mozilla Firefox\firefox.exe')
service = Service(GeckoDriverManager().install(), service_args = ['--marionette-port', '2828', '--connect-existing'] )
driver = webdriver.Firefox(options=options, service = service)
#pageSource = driver.page_source
#print(pageSource)
Use the full path to the executable and not just the folder it is in?
I think your options.binary_location needs to point directly to the executable. So: /mnt/sdb1/firefox/firefox
And executable_path should point to your geckodriver: /mnt/sdb1/firefox/geckodriver