单击()后Selenium远程Webdriver空闲/卡住

时间:2015-07-20 12:37:13

标签: selenium-webdriver jbehave

我正在针对在网格上运行的远程Selenium Webdriver运行我的JBehave测试。问题是,当我点击界面中的特定选项卡时,远程Webdriver会空闲。我用来点击的代码是:

getDriver().findElement(By.linkText(link)).click();

之后,远程Web驱动程序不再响应。即使在此行之后进行调试,只是获取页面源也没有响应。

有趣的事实:

  1. 运行本地Webdriver确实有效:S
  2. 此click()方法也用于许多其他故事/场景
  3. 尝试了所有提示&我能找到的技巧:

    1. 使用xpath而不是linktext来查找元素
    2. 调试(最后挂起我的IntelliJ)
    3. 设置firefox首选项" webdriver.load.strategy"到"不稳定"
    4. 点击后加载的页面包含iframe(我知道,我知道),这可能会造成问题吗?

      如果有人能帮助我一点点。我现在甚至无法调试问题: - (

      我正在使用firefox浏览器v38.0运行v2.46.0 Selenium远程Web驱动程序。

      经过一段时间后的堆栈跟踪:

      java.lang.RuntimeException: org.jbehave.core.embedder.Embedder$RunningStoriesFailed: Failures in running stories: ReportsCount[stories=1,storiesNotAllowed=0,storiesPending=0,scenarios=1,scenariosFailed=1,scenariosNotAllowed=0,scenariosPending=0,stepsFailed=2]
          at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.run(JUnitReportingRunner.java:80)
          at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
          at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
          at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
          at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
      Caused by: org.jbehave.core.embedder.Embedder$RunningStoriesFailed: Failures in running stories: ReportsCount[stories=1,storiesNotAllowed=0,storiesPending=0,scenarios=1,scenariosFailed=1,scenariosNotAllowed=0,scenariosPending=0,stepsFailed=2]
          at org.jbehave.core.embedder.Embedder$ThrowingRunningStoriesFailed.handleFailures(Embedder.java:525)
          at org.jbehave.core.embedder.Embedder.handleFailures(Embedder.java:269)
          at org.jbehave.core.embedder.Embedder.generateReportsView(Embedder.java:256)
          at org.jbehave.core.embedder.Embedder.generateReportsView(Embedder.java:237)
          at org.jbehave.core.embedder.Embedder.runStoriesAsPaths(Embedder.java:213)
          at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.run(JUnitReportingRunner.java:78)
          ... 9 more
      

1 个答案:

答案 0 :(得分:0)

好的,发现问题: - )

正在打开的页面尝试连接到无法访问的地图服务器。

显然,如果出现这样的情况,Selenium不会抛出未能建立的连接的超时错误,而是抛出上面发布的没有任何 - 我可以派生的堆栈跟踪。

离开这里让人们得到相同的行为/错误而不考虑连接问题0: - )