此示例工作: 获取google文本并显示在首页示例asp.net中 在Windows主机中测试正确的工作硒。
我想在托管plesk的Windows中运行硒。
我的错误:
“ /”应用程序中的服务器错误。
预期的浏览器二进制文件位置,但默认情况下找不到二进制文件 位置,没有提供“ moz:firefoxOptions.binary”功能,也没有 在命令行(SessionNotCreated)上设置的二进制标志
说明:执行以下操作时发生未处理的异常 当前的Web请求。请查看堆栈跟踪以获取更多信息 有关错误及其在代码中起源的信息。
异常详细信息:System.InvalidOperationException:预期的浏览器 二进制位置,但无法在默认位置中找到二进制,否 提供了“ moz:firefoxOptions.binary”功能,并且没有二进制标志 在命令行(SessionNotCreated)上设置
源错误:
在执行过程中生成了未处理的异常 当前的Web请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。 堆栈跟踪:
[InvalidOperationException:预期的浏览器二进制位置,但是 无法在默认位置找到二进制文件,否 提供了“ moz:firefoxOptions.binary”功能,并且没有二进制标志 在命令行上设置(SessionNotCreated)]
OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应 errorResponse)+1059
OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,字典的2个参数)+125
OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities requiredCapabilities)+235
OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilitiesdesireCapabilities)+54
OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxOptions选项) +81 WebDriverwithwebapp._Default.Page_Load(对象发送者,EventArgs e)+178
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送方, EventArgs e)+51 System.Web.UI.Control.OnLoad(EventArgs e)+95
System.Web.UI.Control.LoadRecursive()+59
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔值includeStagesAfterAsyncPoint) +678
protected void Page_Load(object sender, EventArgs e)
{
FirefoxOptions options = new FirefoxOptions();
options.BrowserExecutableLocation = ("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); //This is the location where you have installed Firefox on your machine
// WebDriver driver = new FirefoxDriver(options);
using (var FireFoxPage = new FirefoxDriver())
{
//_driver = new FireFoxDriver();
_driver.Manage().Window.Maximize();
_driver.SwitchTo().Window(_driver.CurrentWindowHandle);
_driver.Manage().Cookies.DeleteAllCookies();
// _driver.Manage().Timeouts().ImplicitWait(TimeSpan.FromSeconds(3));
_driver.Navigate().GoToUrl("https://google.com/");
_driver.FindElement(By.Id(Button_ID)).Click();
IwebElement Element1 = _driver.FindElement(By.XPath("/html/body/main/div/div/div[3]/span"));
ksc = Element1.Text.ToString();
Label1.Text = ksc.ToString();
_driver.Quit();
Process[] geckodriverProcesses = Process.GetProcessesByName("geckodriver");
foreach (var geckodriver in geckodriverProcesses)
{
geckodriver.Kill();
}
}
}
答案 0 :(得分:0)
尝试将options
变量传递到new FirefoxDriver()
的参数中。这样对我有用:
FirefoxOptions options = new FirefoxOptions();
options.BrowserExecutableLocation = ("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); //This is the location where you have installed Firefox on your machine
// WebDriver driver = new FirefoxDriver(options);
using (var FireFoxPage = new FirefoxDriver(options))
{
//...
实际上,我在使用options
对象的情况下看到带注释的变量,使用它是否有任何错误?