Selenium + groovy의 운영 환경을 만들고 싶었습니다.
9717 단어 SeleniumBuilder셀레늄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와 명령 줄에서 어디에 차이가 있습니까? ? ?
Reference
이 문제에 관하여(Selenium + groovy의 운영 환경을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gluelan2013/items/fbd4bb5409fef5b23f15
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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;
}
}
}
c:> (個人ディレクトリ)\.groovy\lib
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)
System.setProperty("webdriver.firefox.bin","C:\\Program Files)\\Mozilla Firefox\\Firefox.exe");
결국 Eclips를 설치했습니다 ...
groovy 의 인스톨 방법의 차이에 의한 버젼 차이일까 하고 최신 버전의 2.4.6 으로부터 2.3.11 에 떨어뜨려 eclipse 환경과 맞추어 보았지만 해결할 수 없어.
그다지 간단하게 환경이 생겼다고 생각하지 않는다 여기까지 인스톨 하면
(groovy에 관한 정보를 쓰고 있는 쪽의 기사는 벌써 자바를 잘 다루고 있어 여러가지 것을 알고 있는 전제가 되어 있는 생각이 든다··)
추가 (2015.5.28)
스택 트레이스를 쫓아 보았습니다만 브라우저 기동시에 임시 디렉토리에 firefox의 프로파일을 작성해 webdriver 익스텐션을 복사해 가는 흐름입니다만, 이 임시 디렉토리를 감시하고 있으면 Eclipse에서는 임시 디렉토리가 작성되어 가는데 명령행으로 실행하면 이 과정을 확인할 수 없었습니다. eclipse와 명령 줄에서 어디에 차이가 있습니까? ? ?
Reference
이 문제에 관하여(Selenium + groovy의 운영 환경을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gluelan2013/items/fbd4bb5409fef5b23f15
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Selenium + groovy의 운영 환경을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gluelan2013/items/fbd4bb5409fef5b23f15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)