#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