当前位置: 首页 > 知识库问答 >
问题:

Java selenium如何在TimeOutException之后重新加载网页?

万俟浩
2023-03-14
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //Timeout after 10 seconds

我用的是ChromeDriver。这是我用来设置超时的代码。

try {
    System.out.println("Selenium connected to " + haruhi.link);
    driver.navigate().to(haruhi.link);  //URL to connect
} catch (UnhandledAlertException e) {
    driver.switchTo().alert().accept();
} catch (TimeoutException e) {
    System.out.println("Timeout, Skip this page");
   skip = true;
} catch (NoSuchWindowException e) {
    skip = true;
}
 if (!skip) {
...
}

这是连接到URL的代码。

这段代码位于一个for循环中,该循环迭代URL字符串列表。一旦“skip”设置为真,它对该网页不做任何操作,并在循环的下一次迭代中连接到下一个URL。

我想做的是,当一个网页挂起(卡在无限负载中)时,我想捕获TimeoutException,跳过该网页并连接到循环中的下一个URL。

但一旦捕获到TimeoutException,代码就会连接到下一个URL,但Chrome不会收到该命令。打印出来

“硒连接到http://gall.dcinside.com/board/comment_view/?id=comic_new1

但chrome URL仍然显示

"http://gall.dcinside.com/board/comment_view/?id=comic_new1

意思是driver.get();不起作用。

如何正确使用TimeoutException?

共有1个答案

刘向阳
2023-03-14

用下面的代码试试,

driver.navigate().refresh();
 类似资料:
  • 这是我如何设置我的Chrome司机 这是我的密码。 我运行它,然后它按预期捕获TimeoutException,但随后浏览器停止使用任何get()或navigate()。执行()或刷新命令。 而是在执行驱动程序时抛出另一个TimeoutException。导航()。刷新();第43行 当我执行另一个驱动程序时,浏览器只是在TimeoutException停止,不刷新,不连接到新的URL。得到()

  • 问题内容: 在下面的代码中,我按预期在100秒后捕获了TimeoutException。在这一点上,我希望代码从main退出,而程序终止,但它会一直打印到控制台。如何使任务在超时后停止执行? 问题答案: 您需要在超时时取消任务(并中断其线程)。那就是方法。:

  • 问题内容: 这肯定是一个普遍的问题…而且我觉得在使用Google搜索和SOing之后,我肯定只是没有彻底地环顾四周以获得足够的答案,或者没有人问过这个问题…所以请原谅我。 我正在使用Spring Security和Hibernate等 因此,用户/主要用户已登录并对其个人资料进行了一些更改。 我使用DAO更新配置文件(UserDetails),并且希望我的Principal自动反映此更新。 但是,

  • 我在我的应用程序中使用导航栏,每次我选择一个项目时,它都会加载一个片段。 我能够使用相同的文本字段和按钮保存片段的状态,但有一个片段可以加载地图、添加标记、集群并执行。 每次我转到另一个菜单项并返回时,它都会重新加载所有内容,例如AsyncTask、Cluster、Markers。我如何停止此片段以不再重新创建地图并在返回时保存状态: Udate 1:我更新了代码,但问题仍然存在 主要活动: 主片

  • 基本上,我想自动化谷歌搜索引擎,基本上搜索和点击第一个链接,搜索按钮被点击后填充,所以我用python做这件事。我能够成功地搜索内容,但无法在重新加载页面后单击链接 这个输入类我用的名字是q 这是我的目标链接文本中的html代码,它是K.J.Somaiya Inst。。。。。

  • 我想停止重新加载页面时,我没有选择类别和点击提交按钮。有人能帮我吗? null null