【问题标题】:Timeout exception is showing after button click单击按钮后显示超时异常
【发布时间】:2016-08-11 07:19:25
【问题描述】:

在按钮单击页面后刷新并重定向到另一个页面。在我的情况下,在按钮单击后我给出了页面刷新超时但在按钮单击后显示超时异常而没有时间等待。我使用了所有类型的时间等待事件我使用了线程.sleep() 但没用。


例外:

失败:createEventTest org.openqa.selenium.TimeoutException:等待页面加载超时。 命令持续时间或超时:15.08 秒 构建信息:版本:'2.53.0',修订:'35ae25b1534ae328c771e0856c93e187490ca824',时间:'2016-03-15 10:43:46' 系统信息:主机:'pc',ip:'192.168.1.6',os.name:'Windows 8.1',os.arch:'amd64',os.version:'6.3',java.version:'1.7.0_79 ' 会话 ID:a29803a6-5ec1-4791-b26f-3ab0adb47c7b 驱动信息:org.openqa.selenium.firefox.FirefoxDriver 功能 [{platform=WINDOWS,acceptSslCerts=true,javascriptEnabled=true,cssSelectorsEnabled=true,databaseEnabled=true,browserName=firefox,handlesAlerts=true,nativeEvents=false,webStorageEnabled=true,rotatable=false,locationContextEnabled=true,applicationCacheEnabled=true ,需要屏幕截图=true,版本=46.0.1}] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在 java.lang.reflect.Constructor.newInstance(未知来源) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 在 org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) 在 org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:51) 在 com.sun.proxy.$Proxy6.click(未知来源) 在 com.pv.pages.CreateEventPage.createApprovedEvent(CreateEventPage.java:356) 在 com.pv.pages.CreateEventPage.createEvent(CreateEventPage.java:688) 在 com.pv.tests.CreateEventTests.createEventTest(CreateEventTests.java:39) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86) 在 org.testng.internal.Invoker.invokeMethod(Invoker.java:643) 在 org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) 在 org.testng.TestRunner.privateRun(TestRunner.java:782) 在 org.testng.TestRunner.run(TestRunner.java:632) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:366) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) 在 org.testng.SuiteRunner.run(SuiteRunner.java:268) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1246) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1171) 在 org.testng.TestNG.run(TestNG.java:1066) 在 org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177) 原因:org.openqa.selenium.TimeoutException:等待页面加载超时。 构建信息:版本:'2.53.0',修订:'35ae25b1534ae328c771e0856c93e187490ca824',时间:'2016-03-15 10:43:46' 系统信息:主机:'pc',ip:'192.168.1.6',os.name:'Windows 8.1',os.arch:'amd64',os.version:'6.3',java.version:'1.7.0_79 ' 驱动程序信息:驱动程序版本:未知 在 .Utils.installClickListener/e

【问题讨论】:

  • 也分享你的 Selenium 代码。
  • 代码: //点击按钮 createEvent_btn.click(); //我使用了显式和隐式时间等待,即使我使用了 thread.sleep() 但没有用。 lib.implicitWait(1, TimeUnit.MINUTES);
  • @Gobi 你的问题缺少代码,formatting 和已经使用的方法,我想。请参阅 StackOverflow 格式指南。至于问题本身,你试过waitFor(ExpectedCondition<T>)吗?

标签: selenium selenium-webdriver timeout timeoutexception


【解决方案1】:

试过了吗?

driver.manage().timeouts().pageLoadTimeout(10,TimeUnit.SECONDS);

【讨论】:

    【解决方案2】:

    我曾经使用 javascript 来加载页面。现在我的代码运行良好。

    public static void waitForPageToLoad() {
    
    do {
    
    js = (JavascriptExecutor) driver;
    
    pageLoadStatus = (String)js.executeScript("return document.readyState");
    
    System.out.print(".");
    
    } while ( !pageLoadStatus.equals("complete") );
    
    System.out.println();
    
    System.out.println("Page Loaded.");
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 2020-07-16
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多