Как вы определяете путь к Firefox exe в selenium с помощью Powershell?

#powershell #selenium-webdriver

#powershell #selenium-webdriver

Вопрос:

Я пытаюсь использовать selenium Firefox с powershell, и мне нужно указать исполняемый файл Firefox (portable Firefox). Я могу заставить свой скрипт работать с Chrome, и я нашел, как указать путь Chrome, но мне не повезло с Firefox. Вот все, что у меня есть на данный момент:

 # Website and credential variables
$YourURL = "http://192.168.0.1/" # Website we'll access

# Invoke Selenium into our script!
# Geckodriver.exe
$env:PATH  = ";D:Powershellwebdriver" 
Add-Type -Path "D:PowershellwebdriverWebDriver.dll" 
Add-Type -Path "D:PowershellwebdriverWebDriver.Support.dll" 


$ff_object = New-Object "OpenQA.Selenium.Firefox.FirefoxDriver" 

  

Комментарии:

1. Я не думаю, что вам нужно указывать путь к Firefox (при условии, что вы установили Firefox на свой компьютер). Просто убедитесь, что Geckodriver.exe находится в той же папке с WebDriver.dll

2. Именно по этой причине я опубликовал, что не хочу устанавливать Firefox. Мне нужна портативная версия, которая будет доступна через общую папку.

3. Это возможно, хотя я недостаточно использую PowerShell, чтобы иметь возможность подготовить ответ в данный момент, поскольку я нахожусь на мобильном устройстве. То, что вам нужно, — это FirefoxOptions объект, в частности, BrowserExecutableLocation свойство. FirefoxDriver Класс имеет конструктор, который принимает аргумент options.

Ответ №1:

Большое спасибо, Джимеванс! Вот мой рабочий код powershell:

 $YourURL = "http://192.168.0.1/" # Website we'll access

$env:PATH  = "C:UsersCarlDesktopwebdriver" # Adds the path for ChromeDriver.exe to the environmental variable 
Add-Type -Path "C:UsersCarlDesktopwebdriverWebDriver.dll" # Adding Selenium's .NET assembly (dll) to access it's classes in this PowerShell session

$FirefoxOptions = New-Object OpenQA.Selenium.Firefox.FirefoxOptions
$FirefoxOptions.BrowserExecutableLocation = "D:PortableAppsFirefoxPortableAppFirefox64firefox.exe"
$FirefoxDriver = New-Object OpenQA.Selenium.Firefox.FirefoxDriver($FirefoxOptions) 

# Make use of Selenium's class methods to manage our browser at will
$FirefoxDriver.Navigate().GoToUrl($YourURL) # Browse to the specified website