如果加载时间太长,如何让 selenium 重新加载所需的 url

2023-11-29

如果加载过程花费太长时间,我希望 selenium 强制浏览器重新加载正在加载的页面。

从 StackOverflow 我知道这段代码

new WebDriverWait(driver, 30).until((ExpectedCondition<Boolean>) wd -> ((JavascriptExecutor) wd)
                .executeScript("return document.readyState").equals("complete"));

将等到页面完全加载,但如果需要超过 30 秒,我希望重新加载它。

我怎样才能做到这一点?


要重新加载网页,以防加载过程花费太长时间,您可以配置页面加载超时. pageLoadTimeout设置抛出错误之前等待页面加载完成的时间。如果超时为负数,则页面加载可能是无限期的。

示例(使用 Selenium v​​3.141.59 和 GeckoDriver v0.24.0):

  • 代码块:

    public class pageLoadTimeout 
    {
        public static void main(String[] args) 
        {
            System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
            WebDriver driver=new FirefoxDriver();
            driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
            try{
              driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
              // do your other work here
            }catch(WebDriverException e){
              System.out.println("WebDriverException occured");
              }
            driver.quit();
        }
    }
    
  • 控制台输出:

    1565680787633   mozrunner::runner   INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\Users\\Debanjan.B\\AppData\\Local\\Temp\\rust_mozprofile.3jw3aiyfNAiQ"
    1565680826515   Marionette  INFO    Listening on port 56499
    1565680827329   Marionette  WARN    TLS certificate errors will be ignored for this session
    Aug 13, 2019 12:50:28 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Aug 13, 2019 12:50:31 PM org.openqa.selenium.remote.ErrorCodes toStatus
    WebDriverException occured
    
  • 您可以在以下位置找到相关讨论Selenium 中的 pageLoadTimeout 不起作用

您可以在中找到详细的讨论我们是否有任何通用函数来检查页面是否已在 Selenium 中完全加载

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果加载时间太长,如何让 selenium 重新加载所需的 url 的相关文章

随机推荐

  • AES 在 iOS (Obj-C) 和 Android (Java) 中获得不同的结果

    我对这种加密完全是新手 但我有一个 Java 应用程序和一个 iOS 我希望它们都能够将文本加密为相同的结果 我用的是AES 我找到了这些代码 当然做了一些修改 但它们返回了不同的结果 iOS代码 NSData AESEncryptionW
  • 如何修改SVG图像作为背景图像的填充颜色?

    将 SVG 输出直接与页面代码内联放置 我可以简单地使用 CSS 修改填充颜色 如下所示 polygon mystar fill blue circle mycircle fill green 这很好用 但是我正在寻找一种方法来修改 SVG
  • 两个不同的 jenkins 构建器可以存在于同一个 hpi 中并共享相同的全局配置吗?

    我需要创建两个不同的 Jenkins Builder 类 每个都执行不同的操作 并且每个都需要自己的 jelly 但是 两者都需要相同的全局配置 global jelly 该配置指定主机和一些用户凭据 两种构建器类型的实例在执行执行期间将使
  • 向量值的不同组合

    假设我有一个由 n 个值组成的向量 我想获得其值的不同组合 例如 如果我有 vect a b c 我想要的不同组合是 a b c a b a c b c a b c 请注意 例如 a b 与 b a 相同 因此我不需要同时保留它们 计数自0
  • 如何在 Eclipse 中的可执行 .jar 文件中包含资源文件夹?

    我需要创建一个应用程序 使用各种参数 例如高度 体积或底面积 对各种类型的多边形进行排序 具有多边形参数 排序类型 排序方法的文件名参数将通过命令行传递 该文件位于项目中 src 文件夹外部的资源文件夹中 我已经实现了所有程序 当我通过 e
  • 无法动态创建和附加 div 和 span

    我正在编写一个 HTML 代码 其中有一个 div 说y这是在我的 HTML 正文中 有一个按钮 当用户单击此按钮时 我想要执行以下操作 创建另一个 div 类为smallBar 里面这个div 我想创建3个跨度 添加此 总计smallBa
  • 使用所有时区和有/无 DST 的日期进行单元测试

    如何使此单元测试在所有时区中通过 无论 DST 是否处于活动状态 import static org junit Assert import java text SimpleDateFormat import java util Date
  • 包含新的测试目录 Maven Surefire 插件

    现有结构 src test java gt 所有 java 单元测试 Maven Surefire 插件可以轻松获取此信息 现在 除了这些java单元测试用例之外 我还想包括一些groovy测试用例 并且我想将它们放在src test gr
  • Android - 从光标获取专辑艺术家

    我目前正在创建一个音乐播放器 并且正在使用光标检索设备上的音乐 mCursor getContentResolver query MediaStore Audio Media EXTERNAL CONTENT URI requestedCo
  • python-docx - 显示为普通段落的列表

    我正在尝试将数字和项目符号列表插入到现有的 Word 文档中 但是它们显示为普通段落 Open up existing document document Document existing document docx Add style
  • selenium 无法对网页元素进行屏幕截图

    我可以使用 Firefox get screenshot as file 2 png 对整个页面进行屏幕截图 但是当我使用passage screenshot 1 png 对网页元素进行屏幕截图时 它总是会引发此异常 selenium co
  • 嵌入字体和 11 月字体有什么区别?

    在书中我看到了例子 BaseFont bf BaseFont createFont KozMinPro Regular Identity V BaseFont NOT EMBEDDED Font font new Font bf 20 Ve
  • 将 Blazor .NET 6 WASM 部署到 GitHub 页面

    我正在尝试让 Blazor WASM 在 GitHub 页面中工作 我关注了这个视频 https www youtube com watch v nNxII6jvPvQ 我将它部署到这里 扩展 GH 页面 来源在这里 GH 页面源 我收到此
  • 如何用管道描述推荐基线

    我试图找到复合基线中关联的所有组件基线 我可以使用以下方式实现它 cleartool desc fmt rec bls CXp stream My Integration My PVOB I would save the receommen
  • 异步始终等待激活

    我想弄清楚是什么async await关键字是全部 但输出并不是我所期望的 控制台应用程序如下 class Program static void Main string args Console WriteLine Foo called
  • $and 查询没有返回结果

    好吧 这个简直要了我的命 也许已经晚了 我忘记了一些事情 但这应该有效 出于测试目的 我收集了大约 6000 个文档 有一个属性叫Priority在每个实例中其值为 2 以下两个查询分别返回all6000 个文档 Priority gt 1
  • MKMapKit 可拖动注释和绘制多边形

    我目前正在尝试允许用户向地图添加图钉 然后绘制连接这些图钉的多边形 但是我想扩展它以允许用户能够拖动引脚并且多边形将相应地更新 MKMapView 根据坐标数组中的排列从坐标数组中绘制多边形 如果我没有记错的话 我现在面临的问题是在用户重新
  • 无法启动 Rails Server - 找不到 JavaScript 运行时

    pallav pallav System Product Name Workspace blog rails server home pallav rvm gems ruby 2 0 0 p353 gems execjs 2 0 2 lib
  • pandas:相当于 SQL 的 datediff() 的函数?

    Python 的 pandas 中是否有与 SQL 的 datediff 函数等效的函数 这个问题的答案 在 DataFrame pandas 中添加包含日期之间天数的列解释如何计算天数差异 例如 gt gt gt pd to dateti
  • 如果加载时间太长,如何让 selenium 重新加载所需的 url

    如果加载过程花费太长时间 我希望 selenium 强制浏览器重新加载正在加载的页面 从 StackOverflow 我知道这段代码 new WebDriverWait driver 30 until ExpectedCondition