使用 PhantomJSDriver 的 Selenium 测试挂起且未完成
Selenium test with PhantomJSDriver is hanging and not finishing
首先,我启动本地网络应用程序。
接下来,当我 运行 在 Eclipse 中进行以下测试作为 JUnit 测试时(使用 -Dbrowser=phantomjs
):
@Test
public void homepageShowsSearchBox() throws Exception {
open("http://localhost:8080/app/");
$(By.cssSelector("#someSelector")).should(exist);
}
测试永远不会结束。就像是挂着一样。 (当我在浏览器中打开相同的 URL 时,会显示 webapp)
这是控制台输出:
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: executable: C:\Users\xx\AppData\Roaming\npm\phantomjs
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: port: 14234
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: arguments: [--webdriver=14234, --webdriver-logfile=D:\Test Projects\demoapp-source\web\phantomjsdriver.log]
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: environment: {}
此外,没有phantomjsdriver.log
(日志中提到的那个)。
如果有用,这些是依赖项:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>2.16</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
<scope>test</scope>
</dependency>
解决了,只是
1) 改变依赖(reference):
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.1</version>
<scope>test</scope>
</dependency>
2) 不要使用 npm 安装的 PhantomJS,而是从网站下载一个并将其添加为参数 (-Dphantomjs.binary.path="C:\bin\phantomjs-2.0.0-windows\bin\phantomjs.exe"
) (reference)
首先,我启动本地网络应用程序。
接下来,当我 运行 在 Eclipse 中进行以下测试作为 JUnit 测试时(使用 -Dbrowser=phantomjs
):
@Test
public void homepageShowsSearchBox() throws Exception {
open("http://localhost:8080/app/");
$(By.cssSelector("#someSelector")).should(exist);
}
测试永远不会结束。就像是挂着一样。 (当我在浏览器中打开相同的 URL 时,会显示 webapp)
这是控制台输出:
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: executable: C:\Users\xx\AppData\Roaming\npm\phantomjs
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: port: 14234
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: arguments: [--webdriver=14234, --webdriver-logfile=D:\Test Projects\demoapp-source\web\phantomjsdriver.log]
Feb 17, 2015 3:28:59 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: environment: {}
此外,没有phantomjsdriver.log
(日志中提到的那个)。
如果有用,这些是依赖项:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>2.16</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
<scope>test</scope>
</dependency>
解决了,只是
1) 改变依赖(reference):
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.1</version>
<scope>test</scope>
</dependency>
2) 不要使用 npm 安装的 PhantomJS,而是从网站下载一个并将其添加为参数 (-Dphantomjs.binary.path="C:\bin\phantomjs-2.0.0-windows\bin\phantomjs.exe"
) (reference)