2014-06-14 2 views
0

나는 3 가지 방법 Selenium Webdriver를 사용하여 다른 브라우저에서 다른 메소드를 실행하는 방법은 무엇입니까?

Class 
{ 
    Method1(); 
    Method2(); 
    Method3() 
} 

지금, 크롬에서 FF와의 Method3에서 IE, 방법 2()에서 방법 항목을()() 실행하려는가있는 테스트 케이스를 가지고있다. 나는 코드를 작성했고 꽤 잘 작동한다. 문제는 콘솔에서 오류가 발생한다는 것입니다. "org.openqa.selenium.remote.SessionNotFoundException : 세션 ID가 null입니다 .exit()를 호출 한 후 WebDriver를 사용합니까?" 방법 항목()가 완료됩니다 후

, 나는이 완료됩니다()도 방법 2 이후 크롬 비슷하게
driver.quit(); 
driver=null; 
driver = new FirefoxDriver(); 

처럼 드라이버를 종료합니다.

누군가이 메시지를받는 이유와 해결 방법을 안내해 줄 수 있습니까?

셀레늄 그리드를 사용하고 싶지 않습니다. 감사합니다

+0

아래의 @lost에 의한 제안이 작동하지 않으면 "작동하지 않는"방법을 게시해야합니다. https://stackoverflow.com/help/mcve – SiKing

+0

여기서 작동하지 않는다는 것은 "org.openqa.selenium.remote.SessionNotFoundException : 세션 ID가 null입니다 .exit()를 호출 한 후 WebDriver를 사용합니까?"라는 동일한 오류가 발생한다는 의미입니다. – Naseem

답변

0

귀하의 설명에 따르면이 내가 이해 것입니다 : -

  1. Method1()는 IE입니다
  2. 당신이 종료하는 이유는 FF
  3. Method3() 크롬

입니다 대한

  • Method2()입니다 새로운 WebDriver 인스턴스 생성 코드? 대신 아래와 같은 구조를 만들 때보다 의미가 있습니다.

    Class { 
        WebDriver driver; 
        Method1() { 
         driver = new InternetExplorerDriver(); 
         //code for IE goes here 
         driver.quit(); 
        } 
    
        Method2() { 
         driver = new FirefoxDriver(); 
         //code for FF goes here 
         driver.quit(); 
        } 
    
        Method3() { 
         driver = new ChromeDriver(); 
         //code for chrome goes here 
         driver.quit(); 
        }  
    } 
    

    귀하의 요구 사항이 비정상적인 것으로 보입니다. 여러 브라우저에서 일부 코드를 테스트하려면 TestNG/JUnit과 같은 프레임 워크를 사용하거나 다른 브라우저에 대해 다른 테스트를 지정하는 것이 좋습니다.

    희망이 도움이됩니다.

  • +0

    코멘트를 게시 주셔서 감사하지만 나는 당신의 길도 시험해 보았다. 그러나 그것은 일하지 않고있다. – Naseem

    관련 문제