Definir BrowserExecutableLocation no FirefoxOptions no Selenium não impede o erro "Não é possível encontrar um conjunto de recursos correspondente"
Ainda sou bastante novo no Selenium e estou tentando criar alguns casos de teste que passam minimamente (acho que você poderia chamá-los de equivalentes a um programa "olá mundo" em certo sentido).
Tentei criar uma instância do driver Firefox como esta:
var options = new FirefoxOptions()
{
BrowserExecutableLocation = @"C:\Program Files(x86)\Mozilla Firefox\Firefox.exe",
Profile = new FirefoxProfile(),
LogLevel = FirefoxDriverLogLevel.Debug
};
firefoxDriver = new FirefoxDriver(options);
No entanto, quando executei o teste, recebi o seguinte erro:Unable to find a matching set of capabilities
. Várias outras respostas que li no Stack Overflow e em outros lugares sugeriram que a maneira de corrigir isso é especificar explicitamente o local do arquivo binário, assim:
firefoxDriver = new FirefoxDriver(new FirefoxBinary(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"), new FirefoxProfile());
Quando tento isso, ele funciona, mas recebo o seguinte aviso do compilador:
Warning CS0618 'FirefoxDriver.FirefoxDriver(FirefoxBinary, FirefoxProfile)' is obsolete: 'FirefoxDriver should not be constructed with a FirefoxBinary object. Use FirefoxOptions instead. This constructor will be removed in a future release.'
Se a segunda versão funciona, por que a primeira versão também não funciona, já que especifiquei claramente oBrowserExecutableLocation
noFirefoxOptions
? Existe uma maneira de criar algo como a primeira maneira em que tentei trabalhar para evitar o uso do segundo construtor obsoleto?
FWIW, estou usando o Firefox 52.2.0 e meus pacotes NuGet são definidos da seguinte maneira:
<packages>
<package id="Selenium.Firefox.WebDriver" version="0.18.0" targetFramework="net452" />
<package id="Selenium.WebDriver" version="3.4.0" targetFramework="net452" />
<package id="Selenium.WebDriver.IEDriver" version="3.4.0" targetFramework="net452" />
</packages>