Selenium + groovy의 운영 환경을 만들고 싶었습니다.

시작하기



Selenium이 작동하는 가장 쉬울 것입니다. 환경을 만드십시오.

가능한 한 쉽게 만들 수있는 환경으로 만들고 싶기 때문에 설치 수를 줄이고 싶습니다.
또한 groovy를 사용하지만 geb은 아직 사용하지 않는다고 가정합니다.

그럼에도 불구하고 JavaSDK가 설치되었습니다 (포함 된 환경 변수 설정)

소재



실행 스크립트는 seleniumBuilder로 기록한 것을 내보내고 작성해 본다
groovy는 Java 소스를 편집하지 않아도 작동합니다.

Sauce Labs: Easy Automation with Selenium Builder
htps : // 사우세 bs. 코 m/부이 l로 r

테스트 대상 화면으로 전환 후 SeleniumBuilder를 "도구"- "웹 개발"-"Launch Selenium Builder"에서 시작



"Selenium2"버튼을 누른 후
브라우저에서 검색 상자에 "Selenium"을 입력하십시오.



어설션 커맨드의 입력은 「Record a verification」을 누르고, 브라우저상의 대상을 오른쪽 클릭



"Stop recording"을 누른 후 File 메뉴에서 "export"를 선택



테스트 프레임 워크를 사용하지 않기 때문에 "Java"를 선택하고 파일 이름 "SeleniumBuilder.groovy"로 저장
import java.util.concurrent.TimeUnit;
import java.util.Date;
import java.io.File;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.*;
import static org.openqa.selenium.OutputType.*;

public class SeleniumBuilder {
    public static void main(String[] args) throws Exception {
        FirefoxDriver wd;
        wd = new FirefoxDriver();
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        wd.get("http://www.yahoo.co.jp/");
        wd.findElement(By.id("srchtxt")).clear();
        wd.findElement(By.id("srchtxt")).sendKeys("selenium");
        wd.findElement(By.id("srchbtn")).click();
        wd.findElement(By.linkText("Selenium - Web Browser Automation")).click();
        wd.quit();
    }

    public static boolean isAlertPresent(FirefoxDriver wd) {
        try {
            wd.switchTo().alert();
            return true;
        } catch (NoAlertPresentException e) {
            return false;
        }
    }
}

꽤 간단한 소스가 나왔다.

groovy에서 실행



groovy 실행시 클래스 패스의 설정은 아래를 참고로 했습니다

Groovy 클래스 패스 (classpath)
htp :// npl. 하테나 bぉg. jp/엔트리/20080827/1219852663

지금도 아직 없었는지 확실하지 않으므로 개인 디렉토리 아래에 수동으로 저장했습니다.
c:> (個人ディレクトリ)\.groovy\lib

selenium 관계 라이브러리 저장

공식 공식 다운로드 페이지
h tp // w w. 세니우 mhq. 오 rg / 도 w 응 아 d /
2015/03/05  14:01           345,048 apache-mime4j-0.6.jar
2015/03/05  14:01           242,154 bsh-1.3.0.jar
2015/03/05  14:01           324,238 cglib-nodep-2.1_3.jar
2015/03/05  14:01           263,965 commons-codec-1.9.jar
2015/03/05  14:01           575,389 commons-collections-3.2.1.jar
2015/03/05  14:01            52,543 commons-exec-1.1.jar
2015/03/05  14:01           185,140 commons-io-2.4.jar
2015/03/05  14:01           299,994 commons-jxpath-1.3.jar
2015/03/05  14:01           412,739 commons-lang3-3.3.2.jar
2015/03/05  14:01            62,050 commons-logging-1.1.3.jar
2015/03/05  14:01           354,647 cssparser-0.9.14.jar
2015/03/05  14:01           210,856 gson-2.3.1.jar
2015/03/05  14:01         2,256,213 guava-18.0.jar
2015/03/05  14:01            45,024 hamcrest-core-1.3.jar
2015/03/05  14:01            53,070 hamcrest-library-1.3.jar
2015/03/05  14:01         1,452,628 htmlunit-2.15.jar
2015/03/05  14:01         1,026,253 htmlunit-core-js-2.15.jar
2015/03/05  14:01           592,008 httpclient-4.3.6.jar
2015/03/05  14:01           282,793 httpcore-4.3.3.jar
2015/03/05  14:01            37,272 httpmime-4.3.6.jar
2015/03/05  14:01           101,578 ini4j-0.5.2.jar
2014/12/13  17:09         1,282,424 ivy-2.4.0.jar
2015/03/05  14:01            56,533 jcommander-1.29.jar
2015/03/05  14:01           125,727 jetty-websocket-8.1.8.jar
2015/03/05  14:01         1,006,639 jna-3.4.0.jar
2015/03/05  14:01           913,435 jna-platform-3.4.0.jar
2015/03/05  14:01           245,039 junit-dep-4.11.jar
2015/03/05  14:01           125,150 nekohtml-1.9.21.jar
2015/03/05  14:01         1,106,629 netty-3.5.7.Final.jar
2015/03/05  14:01         4,063,471 operadriver-1.5.jar
2015/03/05  14:01            10,702 phantomjsdriver-1.2.1.jar
2015/03/05  14:01           450,284 protobuf-java-2.4.1.jar
2015/03/05  14:01            15,808 sac-1.3.jar
2015/03/05  14:01           613,315 selenium-java-2.45.0-srcs.jar
2015/03/05  14:01         3,898,959 selenium-java-2.45.0.jar
2015/05/13  16:29        35,269,077 selenium-server-standalone-2.45.0.jar
2015/03/05  14:01           278,281 serializer-2.7.1.jar
2015/03/05  14:01           835,600 testng-6.8.5.jar
2015/03/05  14:01         3,176,148 xalan-2.7.1.jar
2015/03/05  14:01         1,367,760 xercesImpl-2.11.0.jar
2015/03/05  14:01           220,536 xml-apis-1.4.01.jar

실행해보기
C:>groovy SeleniumBuilder.groovy
Caught: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.
xerces.dom.NodeImpl.getChildNodes()Lorg/w3c/dom/NodeList;" the class loader (instance of org/codehaus/groovy/tools/RootLoader) of
the current class, org/apache/xerces/dom/NodeImpl, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Node
have different Class objects for the type org/w3c/dom/NodeList used in the signature
java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xerces.d
om.NodeImpl.getChildNodes()Lorg/w3c/dom/NodeList;" the class loader (instance of org/codehaus/groovy/tools/RootLoader) of the curr
ent class, org/apache/xerces/dom/NodeImpl, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Node have dif
ferent Class objects for the type org/w3c/dom/NodeList used in the signature
        at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
        at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at org.openqa.selenium.firefox.internal.FileExtension.readIdFromInstallRdf(FileExtension.java:97)
        at org.openqa.selenium.firefox.internal.FileExtension.writeTo(FileExtension.java:60)
        at org.openqa.selenium.firefox.internal.ClasspathExtension.writeTo(ClasspathExtension.java:63)
        at org.openqa.selenium.firefox.FirefoxProfile.installExtensions(FirefoxProfile.java:424)
        at org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:402)
        at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:89)
        at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
        at SeleniumBuilder.main(SeleniumBuilder.groovy:14)

로그를 보면 Firefox를 시작할 때 오류가 발생합니다.

라이브러리의 설정은 잘못되어 있지 않다고 생각되는데.

Firefox 개체를 찾을 수 없습니까?
System.setProperty("webdriver.firefox.bin","C:\\Program Files)\\Mozilla Firefox\\Firefox.exe");

이것을 넣어 보았지만 로그는 변함없이

Eclipse에서 시도해보기



라이브러리 버전 문제?

Eclipse 4.4(luna)에 groovy 프로젝트를 만들어 실행해 본다

정상적으로 움직였다! !

결론



결국 Eclips를 설치했습니다 ...

groovy 의 인스톨 방법의 차이에 의한 버젼 차이일까 하고 최신 버전의 2.4.6 으로부터 2.3.11 에 떨어뜨려 eclipse 환경과 맞추어 보았지만 해결할 수 없어.

그다지 간단하게 환경이 생겼다고 생각하지 않는다 여기까지 인스톨 하면

(groovy에 관한 정보를 쓰고 있는 쪽의 기사는 벌써 자바를 잘 다루고 있어 여러가지 것을 알고 있는 전제가 되어 있는 생각이 든다··)

추가 (2015.5.28)



스택 트레이스를 쫓아 보았습니다만 브라우저 기동시에 임시 디렉토리에 firefox의 프로파일을 작성해 webdriver 익스텐션을 복사해 가는 흐름입니다만, 이 임시 디렉토리를 감시하고 있으면 Eclipse에서는 임시 디렉토리가 작성되어 가는데 명령행으로 실행하면 이 과정을 확인할 수 없었습니다. eclipse와 명령 줄에서 어디에 차이가 있습니까? ? ?

좋은 웹페이지 즐겨찾기