0

我在使用 Selenium 时遇到此错误:WebDriver.dll 中发生了“System.InvalidOperationException”类型的未处理异常

附加信息:'[JavaScript 错误:“a 为空”{file:“file:///C:/Users/jzhu/AppData/Local/Temp/anonymous1925480623.webdriver-profile/extensions/fxdriver@googlecode.com/components /command_processor.js" line: 7509}]' 调用方法时:[nsICommandProcessor::execute]

这是我这部分的代码:

ffbrowser.FindElement(By.XPath("//td[4]/a")).Click();

                            Thread.Sleep(1000);

                            ffbrowser.SwitchTo().Frame("content");

                            Thread.Sleep(1000);

                            ffbrowser.SwitchTo().Frame("NavBar");

                            Thread.Sleep(500);

                            ffbrowser.FindElement(By.XPath("//td[12]/a/div/img")).Click();

                            Thread.Sleep(800);

                            InputSimulator.SimulateKeyPress(VirtualKeyCode.RETURN);

                            Thread.Sleep(2000);

                            InputSimulator.SimulateTextEntry(@"Tostring.pdf");

                            Thread.Sleep(1500);

                            InputSimulator.SimulateKeyPress(VirtualKeyCode.RETURN);

                            Thread.Sleep(3500);

                            //ffbrowser.Navigate().Refresh();

                            //ffbrowser.SwitchTo().DefaultContent();


                            ffbrowser.Navigate().Back();
                            //InputSimulator.SimulateKeyPress(VirtualKeyCode.BROWSER_BACK);

                            Thread.Sleep(1000);

                            InputSimulator.SimulateKeyPress(VirtualKeyCode.RETURN);

                            Thread.Sleep(1000);

                            InputSimulator.SimulateKeyPress(VirtualKeyCode.RETURN);

                            Thread.Sleep(500);

                            //Thread.Sleep(500);

                            //ffbrowser.SwitchTo().DefaultContent();

                            //Thread.Sleep(1000);

                            //ffbrowser.SwitchTo().Frame("content");

                            //ffbrowser.SwitchTo().Frame("leftnav");

                            //Thread.Sleep(1000);

                            //ffbrowser.FindElement(By.LinkText("My Bills")).Click();

                            //Thread.Sleep(1000);

它位于登录后面的网站上,因此如果不提供敏感的登录信息,我无法提供实际示例。但是我正在使用 switchTo 进入框架,然后我需要执行 Navigate.Back(),但是当我尝试导航时它会因该错误而崩溃。

4

1 回答 1

2

我对 C# 的了解非常有限,但我知道,如果您尝试在 iframe 对象中调用 WebDriver 对象上的方法,则会在其他绑定(如 Java 和 Ruby)中引发错误。

webdriver.switchTo().defaultContent()解决方法是在尝试之前使用该方法webdriver.Navigate.Back()

于 2013-05-22T22:00:00.910 回答