【问题标题】:Selenium test with PhantomJSDriver is hanging and not finishing使用 PhantomJSDriver 的 Selenium 测试挂起且未完成
【发布时间】:2015-02-17 14:39:17
【问题描述】:

首先,我启动本地 webapp。

接下来,当我在 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>

【问题讨论】:

  • 顺便说一下,你可以用更短的变体代替By.cssSelector:$("#someSelector").should(exist);

标签: java junit selenium-webdriver phantomjs ghostdriver


【解决方案1】:

解决了,刚刚

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)

【讨论】:

  • 你可能可以使用 npm 安装的 PhantomJS exe。发生的情况可能是 Java 无法处理实际启动 exe 的脚本。
  • 正确,我可以在控制台中使用来自 npm 的那个,但不能来自 JUnit 测试。可能不期望 .cmd 而是 .exe。
  • @MartinSpa,该工件的代码存储库在哪里? com.codeborne:phantomjsdriver:1.2.1
  • 嗨!你可以在 Maven 中心找到它search.maven.org/…
  • @MartinSpa 是的,但是该工件的代码存储库在哪里?它是否是从原始存储库中分叉的? repo1.maven.org/maven2/com/codeborne/phantomjsdriver/1.2.1/… - 它声明代码库仍位于 github.com/detro/ghostdriver 但实际代码是什么?有哪些变化?
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
相关资源
最近更新 更多