2013-05-22 2 views
0

Я получаю эту ошибку с помощью Selenium: Необработанное исключение типа 'System.InvalidOperationException' произошло в WebDriver.dllПереключение кадров в Selenium WebDriver, C#

Дополнительная информация: «[JavaScript Error:«а нулевой "{file:" file: /// C: /Users/jzhu/AppData/Local/Temp/anonymous1925480623.webdriver-profile/extensions/[email protected]/components/command_processor.js "строка: 7509}] ', когда вызова метода: [nsICommandProcessor :: Execute]

Вот мой код для этой части:

ffbrowser.FindElement (By.XPath ("// тд [4]/а . «)) Нажмите();

      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(), но он падает с этой ошибкой, когда я пытаюсь перемещаться.

+0

Какой код вы используете? Какой браузер? Какая версия этого браузера? Какая версия Селена? Какая трассировка стека у вас есть? – Arran

ответ

2

У меня очень ограниченное знание о C#, но я знаю, что есть ошибки, возникающие в других привязках (например, Java и Ruby), если вы пытаетесь вызвать методы в объекте WebDriver, находясь внутри объекта iframe.

Решение должно использовать метод webdriver.switchTo().defaultContent() перед тем, как попытаться установить webdriver.Navigate.Back().

+0

Спасибо bgoad, у меня есть webdriver.switchTo(). DefaultContent() Но я получил то же сообщение об ошибке в swtich для контента по умолчанию. –

+0

Похоже, вы пытаетесь вызвать 'webdriver.executeScript' где-то в вашем коде. Не могли бы вы обновить вопрос своим кодом, включая эту строку, и ваши строки для включения и выключения iframe, а также строки Navigate.Back()? – bbbco

+0

bgoad, я обновил свой вопрос с частью моего кода. Вы можете заметить, что перед тем, как я доберусь до этого, у меня есть два переключателя. Есть идеи? –