【问题标题】:Selenium Remote Webdriver idle / stuck after click()Selenium Remote Webdriver 在 click() 后空闲/卡住
【发布时间】:2015-07-20 12:37:12
【问题描述】:

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

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

之后,远程 Webdriver 不再响应。即使在此行之后进行调试并且仅获取页面源也没有响应。

有趣的事实:

  1. 运行本地 Webdriver 确实有效:S
  2. 此 click() 方法也用于许多其他故事/场景

尝试了我能找到的所有提示和技巧:

  1. 使用 xpath 而不是 linktext 来查找元素
  2. 调试(最终挂断了我的 IntelliJ)
  3. 将 firefox 首选项“webdriver.load.strategy”设置为“不稳定”

单击后正在加载的页面包含一个 iframe(我知道,我知道),这会造成问题吗?

如果有人可以帮助我更进一步。我现在什至无法调试问题:-(

我正在使用带有 Firefox 浏览器 v38.0 的 v2.46.0 Selenium Remote Webdriver 运行。


一段时间后我得到的堆栈跟踪:

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

【问题讨论】:

    标签: selenium-webdriver jbehave


    【解决方案1】:

    好的,找到问题了:-)

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

    显然,如果出现这种情况,Selenium 不会抛出无法建立的连接的超时错误,而是会抛出上面发布的 nothing-I-can-derive-from-stacktrace。

    把它留在这里,让人们得到相同的行为/错误,而不是考虑连接问题 0:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多