2016-07-07 2 views
1

HtmlUnitDriver가 포함 된 기본 셀렌 스크립트를 실행할 수 없습니다. 코드를 실행하려고하면 다음과 같은 오류가 발생합니다.HtmlUnitDriver가 포함 된 Selenium webdriver에서 스크립트를 실행하기가 어려움

코드 :

public class SampleUnitDriver 
{ 
    public static void main(String[] args) throws Exception 
    { 
     HtmlUnitDriver unitDriver = new HtmlUnitDriver(); 

     unitDriver.get("http://google.com"); 

     System.out.println("Title of the page is -> " + unitDriver.getTitle());    

     Thread.sleep(3000L); 
     WebElement searchBox = unitDriver.findElement(By.className("gsfi")); 

     searchBox.sendKeys("Selenium");    

     WebElement button = unitDriver.findElement(By.name("gbqfba")); 

     button.click(); 

     System.out.println("Title of the page is -> " + unitDriver.getTitle()); 

    } 
} 

오류 : 당신은 2 가지 옵션이 있습니다, 그래서 입력 상자의 클래스 이름 gsfi은 자바 스크립트에 의해 생성되는

Title of the page is -> Google 
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Returned node was not a DOM element 
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46' 
System info: host: 'user-PC', ip: '192.168.1.52', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_51' 
Driver info: driver.version: SampleUnitDriver 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByCssSelector(HtmlUnitDriver.java:1060) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByClassName(HtmlUnitDriver.java:1032) 
    at org.openqa.selenium.By$ByClassName.findElement(By.java:391) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1725) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1721) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1367) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1721) 
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:606) 
    at com.digitalmqc.automation.action.SampleUnitDriver.main(SampleUnitDriver.java:16) 

답변

0

:

쉬운 하나 : id를 사용하여 선택하십시오. lst-ib

개선 사항 : 요소가 완전히 상호 작용할 때까지 기다립니다. 이 더 나은 뒤에있는 이유는 자바 스크립트가 역할을하는 상자에 텍스트를 입력하려고하는 것입니다. 이전 옵션은 예기치 않은 오류가 발생할 수 있습니다.

+0

이것은 나를 위해 일하고 있습니다 :) –