2013-04-26 3 views
-1

프레임 워크를 사용하여 Selenium WebDriver API을 사용하고 싶습니다. 그래서 그것은지지 될 것인가 아닌가.셀레늄 webdriver가 Struts 2를 지원합니까?

그렇다면 어떻게해야합니까?

그것은 의미, 나는 액션 클래스와 연결되는 내 jsptextfield을 가지고 내가 요소 "q"로 sendKeys로 내 textfieldwww.google.com를 검색한다고 가정합니다.

무엇을하려고하는 것은

의 index.jsp입니다 :

<s:form action="test"> 
<s:textfield name="search" label="Enter Search "></s:textfield> 
</s:form> 

</body> 

struts.xml :

<action name="test" class="com.actions.TestAction"> 
      <result name="SUCCESS">/success.jsp</result> 
    </action> 

ActionClass :

package com.actions; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.htmlunit.HtmlUnitDriver; 

import com.opensymphony.xwork2.ActionSupport; 

public class TestAction extends ActionSupport 
{ 

    private String search; 

    public String getSearch() { 
     return search; 
    } 

    public void setSearch(String search) { 
     this.search = search; 
    } 


    private static final long serialVersionUID = -1241657564582564726L; 

    @Override 
    public String execute() throws Exception { 

     WebDriver driver = new HtmlUnitDriver(); 

     driver.get("http://www.google.com"); 

     WebElement element = driver.findElement(By.name("q")); 


     element.sendKeys(getSearch()); 

     element.submit(); 


     System.out.println("Page title is: " + driver.getTitle()); 


     System.out.println(driver.getPageSource());   

     driver.quit(); 
     return "SUCCESS"; 
    } 


} 

오류 :

SEVERE: Exception starting filter struts2 
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
    at java.lang.Class.getConstructor0(Unknown Source) 
    at java.lang.Class.getConstructor(Unknown Source) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:428) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:378) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:495) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:286) 
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:234) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:390) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437) 
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:193) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:278) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:259) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:383) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:104) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 

답장을 기다리고 있습니다. 감사합니다!

답변

1

누군가가 더 나은 답변을 얻을 때까지 ... 나는 스트럿트를 직접 사용한 적이 없지만 그것이 무엇을하는지에 대한 기본적인 생각을 가지고 있다고 생각합니다.

셀레늄은 사용자가 원하는대로 프론트 엔드에서 작동합니다. 나는 스트럿츠가 백엔드 기술이라고 믿는다. 이것은 브라우저가 스트럿츠에 의해 조립 된 것을 받는다는 것을 모르고 있다는 것을 의미한다. Struts는 서버가 html, css 및 javascript를 어셈블하는 데 도움을줍니다.

셀레늄은 html, javascript 및 css와 잘 작동하며 서버가 발송하는 것이므로 모두 양호해야하며 "제대로 지원해야합니다"!

관련 문제