2013-04-16 2 views
2

내가의 standart exsample에 사용하고 있습니다 : cucumber-jvm-selenium-example오이 JVM 셀레늄 예를

내가 테스트를 실행합니다

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running com.michalvich.cucumber.selenium.example.GoogleSearchTest 
Feature: Search on Google 
    As an user 
    I want to search on Google 
    So that I can see results 

    Scenario: results are shown      # com\michalvich\cucumber\selenium\example\GoogleSearch.feature:6 
    Given the page is open "http://www.google.com" # GoogleSearchScenario.the_page_is_open(String) 
[1A Given the page is open "http://www.google.com" # GoogleSearchScenario.the_page_is_open(String) 
    When I search for "Cucumber"     # GoogleSearchScenario.I_search_for(String) 
[1A When I search for "Cucumber"     # GoogleSearchScenario.I_search_for(String) 
     org.openqa.selenium.NoSuchElementException: Unable to locate element with name: q 
     For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
     Build info: version: '2.28.0', revision: '18309', time: '2012-12-11 15:53:30' 
     System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_17' 
     Driver info: driver.version: HtmlUnitDriver 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:749) 
     at org.openqa.selenium.By$ByName.findElement(By.java:292) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1247) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1244) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:987) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1244) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:393) 
     at com.michalvich.cucumber.selenium.example.GoogleSearchScenario.I_search_for(GoogleSearchScenario.java:26) 
     at ?.When I search for "Cucumber"(com\michalvich\cucumber\selenium\example\GoogleSearch.feature:8) 

을하지만 드라이버를 변경하는 경우 :

System.setProperty("webdriver.chrome.driver", "path\\to\\chromedriver.exe"); 
driver = new ChromeDriver(); 

의미가 있습니다.

+0

어떻게 테스트를 실행하는 등의 Google 수익을해야합니다, 구글 아약스 새로 고침을 기다릴 필요가? – Njax3SmmM2x2a0Zf7Hpd

답변

0

당신은 그렇지 않으면 당신은 페이지 제목

@When("^I search for \"([^\"]*)\"$") 
public void I_search_for(String search) throws Throwable { 
    WebElement element = driver.findElement(By.name("q")); 
    element.sendKeys(search); 
    element.submit(); 

    // Google ajax wait for 5 seconds 
    long end = System.currentTimeMillis() + 5000; 
    while (System.currentTimeMillis() < end) { 
     WebElement resultsDiv = driver.findElement(By.className("gssb_e")); 

     // If results have been returned, the results are displayed in a drop down. 
     if (resultsDiv.isDisplayed()) { 
      break; 
     } 
    } 
} 
+0

이것은 사실이지만 고정 된 시간 동안 대기하는 것은 나쁜 설계이므로 여기에서 논의되는 'fluentWait'과 같은 것을 고려하십시오 : https://stackoverflow.com/questions/12858972/how-can-i-ask-the-selenium -webdriver-to-for-few-seconds – Dude

+0

나는이 문제가 대기 상태가 아니라, 기본적으로 htmlunit로 설정된 드라이버 개체와 관련이 있다고 생각한다. –

+0

이 문제는 Chrome 드라이버 구현시 올바르게 작동하는 HtmlUnitDriver의 특정 구현과 관련된 문제로 보입니다. –

관련 문제