Selenium 等待 Ajax 内容加载 - 通用方法

2023-12-27

Selenium 是否有一种通用的方法来等待所有 ajax 内容加载完毕? (不绑定到特定网站 - 所以它适用于每个 ajax 网站)


您需要等待 Javascript 和 jQuery 完成加载。执行 Javascript 检查是否jQuery.active is 0 and document.readyState is complete,这意味着 JS 和 jQuery 加载完成。

public boolean waitForJSandJQueryToLoad() {

    WebDriverWait wait = new WebDriverWait(driver, 30);

    // wait for jQuery to load
    ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() {
      @Override
      public Boolean apply(WebDriver driver) {
        try {
          return ((Long)((JavascriptExecutor)getDriver()).executeScript("return jQuery.active") == 0);
        }
        catch (Exception e) {
          // no jQuery present
          return true;
        }
      }
    };

    // wait for Javascript to load
    ExpectedCondition<Boolean> jsLoad = new ExpectedCondition<Boolean>() {
      @Override
      public Boolean apply(WebDriver driver) {
        return ((JavascriptExecutor)getDriver()).executeScript("return document.readyState")
        .toString().equals("complete");
      }
    };

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

Selenium 等待 Ajax 内容加载 - 通用方法 的相关文章

  • Java无法读取字体

    好的 我在使用自定义字体时遇到问题 基本上我得到了从互联网上下载的自定义字体并在我的程序中使用它 当我在 Eclipse 我使用的编辑器 中运行该程序时 一切正常 没有问题 但是 每当我将它从 eclipse 导出到 jar 时 或者尝试从
  • 为什么在Java中读取易失性和写入字段成员是不可扩展的?

    观察以下用 Java 编写的程序 完整的可运行版本如下 但程序的重要部分在下面的代码片段中 import java util ArrayList A not easy to explain benchmark class MultiVola
  • 扩展 CrudRepository (Spring) 时是否需要 @Repository 注解?

    public interface CarRepository extends CrudRepository
  • 在记录活动中使用 readConfiguration 方法

    为了在小型 Java 桌面应用程序中使用日志记录 我试图深入了解一些方法的操作 我使用一个非常愚蠢的小Java程序来测试它们 特别是 在测试 LogManager readConfiguration 方法的行为时 我发现了一些奇怪的事情 在
  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • 从 java 代码运行 Python 脚本

    这是我第一次在java中尝试python 我正在尝试从我的代码执行 python 脚本 如下所示 Process process Runtime getRuntime exec python C Users username Desktop
  • 为什么这个 Java 静态字段为空?

    public class StaticTest private static String a private static String b this is a public static void main String args a
  • 在java中将HTML转换为RTF?

    我需要将 HTML 转换为 RTF 我正在使用以下代码 private static String convertToRTF String htmlStr OutputStream os new ByteArrayOutputStream
  • Linux 上的 JavaFX

    Linux x86 和 x64 上的 JavaFX 情况如何 JavaFX 应用程序可以在 Linux 操作系统上顺利执行吗 我发现了 2011 年和 2012 年的一些问题 当时应用程序不稳定 目前发布的 JFX 版本是 2 2 4 在
  • JFreeChart 更改现有条形图中的数据

    我想循环更改条形图数据 但我不知道该怎么做 我的代码 DefaultCategoryDataset barChartData new DefaultCategoryDataset barChartData setValue 0 Values
  • java中简单程序中的“未为类型定义方法”错误

    所以我只是想学习 Java 在观看了一些教程并阅读了一些基本内容之后 我对为什么它无法运行感到困惑 package Test public class TestProg public static void main String args
  • Run As JUnit 未出现在 Eclipse 中 - 使用 JUnit4

    我正在尝试为我的 Web 应用程序编写 JUnit4 测试 它们之前一直工作正常 但是 现在当我尝试通过右键单击类文件 gt Run As gt JUnit Test 来运行测试时 我看不到该选项 我认为这可能是因为一位同事意外提交了一些
  • Java写入ByteArrayOutputStream内存泄漏

    我正在将图像字节写入ByteArrayOutputStream然后通过套接字发送它 问题是 当我这样做时 ImageIO write image gif byteArray 内存增加很多 有点内存泄漏 我用这个发送 ImageIO writ
  • 自动装箱是否调用 valueOf()?

    我试图确定以下陈述是否保证为真 Boolean true Boolean TRUE Boolean true Boolean valueOf true Integer 1 Integer valueOf 1 我一直认为自动装箱相当于调用va
  • 使用 Hashmap 理解两个或多个键

    我的哈希图有问题 在我的哈希映射方法中 我希望有两个或多个关键字作为键 而不是只有一个 例如 我希望用户输入一些包含两个或多个关键字的句子 假设 教授姓名 是关键字 例如 String temp3 instructor teacher me
  • 解决SecurityException:权限拒绝:启动意图。我需要什么许可?

    我想从应用程序打开游戏商店 在三星手机上还好 但在一加手机上却失败了 我不知道在哪里alibaba来自 真奇怪 异常 java lang SecurityException 权限拒绝 启动意图 act android intent acti
  • Java:当计时器处于活动状态时,JSplitPane 将顶部面板的内容复制到底部面板

    所以我有一个 JSplitPane 和两个 JPanel 一个在顶部 一个在底部 在这两个面板中 我重写了paintComponent方法并添加了我自己的图形 在底部面板中 我想添加动画 当面板不重新绘制时 这很好 但是一旦计时器 java
  • 如何处理JFreeChart中的SpiderWebPlot?

    发现 JFreeChart 我在使用时遇到了问题蜘蛛网情节 http www jfree org jfreechart api javadoc org jfree chart plot SpiderWebPlot html 这就是我今天所拥
  • Java中ThreadFactory的使用

    有人可以简要解释一下如何以及何时使用 ThreadFactory 吗 使用和不使用 ThreadFactory 的示例可能确实有助于理解差异 Thanks 这是一种可能的用法 假设您有一个ExecutorService它执行你的Runnab
  • 从 Java 程序中获取局部变量的名称和类型

    这是我正在尝试的代码 JavaCompiler compilerA ToolProvider getSystemJavaCompiler int resultA compilerA run null null null Users a Do

随机推荐

  • Android RESTful 客户端

    我有一个 RESTful Web 服务 我想从 Android 访问它 public class AndroidClientActivity extends Activity private EditText text Called whe
  • 如何防止后台线程中的异常终止应用程序?

    我可以连接到AppDomain CurrentDomain UnhandledException记录后台线程的异常 但如何防止它们终止运行时 首先 您确实应该尽量不要在后台线程中抛出异常 而不是处理异常 如果您控制委托的运行方式 请将其封装
  • Rails ActiveRecord #save 方法可以用于更新现有记录吗? [复制]

    这个问题在这里已经有答案了 Can the save方法用于更新记录 我知道我可以create使用保存创建新记录 如下所示 person Person new person save rails will insert the new re
  • 导入numpy在IDLE中不起作用

    我在 windows10 机器上安装了 python3 5 2 添加到 pythonpath 包含在新 python 的设置中 然后 我安装了Anaconda 4 2 0 版本 当我运行 python 解释器时在命令提示符处并且import
  • 如何从discord API获取头像?

    我想问一下如何获得已通过oAuth2授权的用户的头像 https cdn discordapp com avatars 781264468998488095 XXXXXXXXXXXXXXXXXXX size 128 第一个是客户端ID 有人
  • 如何调试运行时堆栈下溢错误?

    我真的很难解决我遇到的堆栈下溢问题 我在运行时得到的回溯是 VerifyError Error 1024 Stack underflow occurred at flash events EventDispatcher dispatchEv
  • 如何使用oauth2为网站构建Python爬虫

    我是网络编程新手 我想用Python构建一个爬虫来爬行Foursquare中的社交图谱 我有一个 手动 控制的爬虫 使用apiv2图书馆 主要方法如下 def main CODE url https foursquare com oauth
  • 如何使用 BundleTransformer YuiJsMinifier 删除注释

    我在用捆绑变压器 http bundletransformer codeplex com缩小css and js资源
  • 从 JavaScript 或 JQuery 设置 React 输入字段值

    如何使用 vanilla JS 或 JQuery 以编程方式设置 React 生成的输入字段的值 我已经尝试过以下方法 但似乎没有任何效果 obj val abc obj attr value abc obj keydown obj key
  • iOS 5.0 警告:找不到 Delegate 的协议定义

    我有自定义 UIView 类 GestureView 我有一个此类的前向声明 它是下面的代表 我已将 GestureView h 导入到 m 文件中 这工作正常 但 iOS 给出警告消息 找不到 GestureViewDelegate 的协
  • 在 Angular 2 中保留页面重新加载的数据

    在我的 Angular 2 应用程序中 我将一些数据从 HomeComponent 传递到 PageComponent 然后将其保存到 PageComponent 内的变量中 现在 当我刷新页面时 我需要保留这些数据 目前我正在使用会话存储
  • 如何将变量从 C# 传递到 javascript?

    希望将变量从 c 传递到 javascript 以使用一些 jquery 代码 传递双精度数 整数 字符串 数组 有谁知道如何做到这一点 例如 如果我在 C 中有以下代码片段 string blah this is a blah strin
  • 如何在没有静态 IP 的情况下远程访问本地 Web 或数据库服务器

    我如何在没有静态 IP 地址的情况下远程访问本地 Web 服务器或数据库服务器访问 我有桌面数据库驱动的应用程序 该应用程序将数据保存在 MS SQL Server 中 我想访问在 bluehost 上托管的公司当前网站上的数据 有什么方法
  • 在 jQuery 后台拉取 HTML 资源

    在一个页面上 有一个按钮 单击该按钮时 会出现一个下拉菜单 下拉列表包含一个图像 问题是在用户单击按钮之前不会获取图像 my button click function my dropdown html img src 我想在页面加载时获取
  • 如何创建 PSObject 对象的新克隆实例

    我想创建自定义 PSObject 的新实例 我有一个创建为 PSObject 的 Button 对象 我想创建一个新对象 Button2 它具有与 Button 相同的成员 但我找不到一种方法如何克隆原始对象而不在原始对象中引用它 如果我更
  • 使用winapi查找进程ID和基地址

    我正在 Code Blocks 中编写一个程序 它会简单地打印应用程序的进程 ID 和基地址 PID 找到正确 但我在基地址方面遇到困难 而且我正在使用 GNU GCC 编译器 x64 我的猜测是错误在于HANDLE hSnap Creat
  • MySQL 数据库中字符的 UTF-8 问题(例如 é 为 é)

    我知道有数百个关于 UTF 8 问题的问题 但我尝试了所有能找到的方法 但没有一个有帮助 事实 我正在尝试读取一个包含 从我的 MySQL 数据库并将其显示在 PHP 页面上 实际上 它确实显示为 但字体无法识别它 因此使用另一种默认字体
  • 将 emacs(aquamacs) 与 python 3.2 一起使用

    mac osx Snow leopard 上的默认 python 版本是 python 2 6 1 我正在学习 python 3 所以我必须更改解释器 我已经更改了偏好设置 以便它指向 Library framework python fr
  • 在android中使用Activity的有效方法是什么

    我只是想问什么是有效的使用活动的方式 意味着将一项活动用于多种功能 或者将多项活动用于每种功能 在我的应用程序中 工作类似于类别 gt 子类别 gt 产品列表 其中方向改变设计并且还需要消耗以前的功能状态用于返回 Thanks 根据活动文档
  • Selenium 等待 Ajax 内容加载 - 通用方法

    Selenium 是否有一种通用的方法来等待所有 ajax 内容加载完毕 不绑定到特定网站 所以它适用于每个 ajax 网站 您需要等待 Javascript 和 jQuery 完成加载 执行 Javascript 检查是否jQuery a