Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 预期[object Undefined]Undefined为字符串(IndexOutOfBounds)_C#_Selenium_Firefox_Selenium Webdriver_Geckodriver - Fatal编程技术网

C# 预期[object Undefined]Undefined为字符串(IndexOutOfBounds)

C# 预期[object Undefined]Undefined为字符串(IndexOutOfBounds),c#,selenium,firefox,selenium-webdriver,geckodriver,C#,Selenium,Firefox,Selenium Webdriver,Geckodriver,我在Firefox中面临sendkeys的一个问题,它抛出了一个异常“预期[object Undefined]Undefined为字符串(IndexOutOfBounds)” 我将geckodriver的路径添加到系统变量中,这样就不会在代码中发送路径 Firefox驱动程序: FirefoxProfile profile = new FirefoxProfile(); profile.SetPreference("browser.download.manager.alertOnEXEOpen"

我在Firefox中面临sendkeys的一个问题,它抛出了一个异常“预期[object Undefined]Undefined为字符串(IndexOutOfBounds)”

我将geckodriver的路径添加到系统变量中,这样就不会在代码中发送路径

Firefox驱动程序:

FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("browser.download.manager.alertOnEXEOpen", false);
profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/csv, text/csv, text/plain,application/octet-stream doc xls pdf txt");
profile.SetPreference("browser.download.manager.focusWhenStarting", false);
profile.SetPreference("browser.download.useDownloadDir", true);
profile.SetPreference("browser.helperApps.alwaysAsk.force", false);
profile.SetPreference("browser.download.manager.closeWhenDone", true);
profile.SetPreference("browser.download.manager.showAlertOnComplete", false);
profile.SetPreference("browser.download.manager.useWindow", false);
profile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.SetPreference("pdfjs.disabled", true);
_driverInstance = new FirefoxDriver(profile);
堆栈跟踪:

System.InvalidOperationException: Expected [object Undefined] undefined to be a string (IndexOutOfBounds)
Result StackTrace:  
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.SendKeys(String text)
at LoginPage.set_forgotPwdEmail(String value)
每个具有SendKeys()的测试用例都会抛出此错误

我在SO中读到了一些问题,并了解到这是Firefox的问题所在。在修复之前,是否有工作要做

Firefox版本:53.0 GeckoDriver:GeckoDriver-v0.15.0-win64 Selinium版本:3.3.0

尝试使用 系统线程线程睡眠(3000)

例如:

IWebElement Password = driver.FindElement(By.Id("txtPassword"));
 Password.SendKeys("pass");
 System.Threading.Thread.Sleep(3000);
 Password.SendKeys(Keys.Enter);
  • 将Selenium更新至3.4版
  • 将GeckoDriver更新至版本16或更新版本

  • 如果显示问题,请将驱动程序从64位更改为32位

    我使用JavaScript输入发送键不适用的值:
    ((IJavaScriptExecutor)driver).ExecuteScript(“参数[0]。值='Test',密码)

    “解决方法”是使用geckodriver 0.16,该版本现在可用。@JimEvans感谢您的回复。我在周五验证了最新的壁虎,到那时它仍然是V0.15。今天没有核实。再次感谢。我将试用最新版本。@JimEvans谢谢,它成功了。我们需要将selenium更新到3.4以支持GeckoV0.16。一旦两者都更新,就不会出现任何问题。再次感谢。这里有一个答案:(是的,你需要更新geckodriver)。这应该有什么帮助?在我的情况下,当我使用sleep或wait时,它会执行。有时它显示“预期[object Undefined]Undefined为字符串(IndexOutOfBounds)”。网络速度太慢或应用程序没有响应时出错。密码是WebElement是否尝试更新驱动程序?