2013-05-22 3 views
0

내가 셀레늄 사용하여이 오류를 얻고있다 :전환 프레임, C#을

이 이

추가 정보 처리되지 않은 'System.InvalidOperationException'형식의 예외가 WebDriver.dll에서 발생했습니다 : '[자바 스크립트 오류 : "a가 null "{file :"file : /// C : /Users/jzhu/AppData/Local/Temp/anonymous1925480623.webdriver-profile/extensions/[email protected]/components/command_processor.js "줄 : 7509}] ' 호출 방법 :

ffbrowser.FindElement (By.XPath ("// TD [4]/A [nsICommandProcessor :: 실행 여기서

이 부분 내 코드 ")).딸깍 하는 소리();

      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

어떤 코드를 사용하고 있습니까? 어떤 브라우저? 해당 브라우저의 버전은 무엇입니까? Selenium의 어떤 버전입니까? 스택 트레이스는 무엇입니까? – Arran

답변

2

C#에 대한 지식이 매우 부족하지만 iframe 객체 내부에서 WebDriver 객체의 메서드를 호출하려고하면 Java 및 Ruby와 같은 다른 바인딩에 오류가 발생한다는 것을 알고 있습니다.

해결 방법은 webdriver.Navigate.Back()으로 시도하기 전에 webdriver.switchTo().defaultContent() 방법을 사용하는 것입니다.

+0

감사합니다 bgoad, webdriver.switchTo(). defaultContent()하지만 기본 콘텐츠 swtich 같은 오류 메시지가 있어요. –

+0

코드 어딘가에'webdriver.executeScript'를 호출하려고하는 것 같습니다. 이 라인을 포함하여 코드를 iframe과 Navigate.Back() 라인을 포함하여 전환하는 질문을 업데이트 할 수 있습니까? – bbbco

+0

bgoad, 내 코드의 일부로 내 질문을 업데이트했습니다. 내가이 지점에 도달하기 전에 프레임에 두 개의 스위치가 있음을 알 수 있습니다. 어떤 생각? –