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

当元素已经存在时,如何停止在Selenium WebDriver中加载页面?

隗高旻
2023-03-14

我正在刮一个网站,出于某种原因需要15秒加载,但我需要的元素在前5秒加载。

driver.Navigate().GoToUrl(url);

new WebDriverWait(driver, TimeSpan.FromSeconds(20))
    .Until(ExpectedConditions.ElementIsVisible(By.XPath(xpath)));
    null

我能做点什么吗?谢谢你。

共有1个答案

朱建弼
2023-03-14

GoTourl的创建方式是,只有当page完全加载时才执行下一行。所以是的,在代码中写什么并不重要,在navigate方法之后,在页面完全加载之前,它永远不会工作。作为解决办法,您可以选择timeout选项,它将抛出一个异常,因为页面仍然需要加载,所以我们应该捕捉到它并执行我们的下一个代码。

//这是java代码,所以请只选择这里的逻辑:
//将页面加载超时设置为10秒。

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

try {  
  driver.Navigate().GoToUrl(url);  
} catch (TimeoutException e) {  
  // Ignore the exception.  
}  
 类似资料:
  • 当页面使用AJAX时,可以使用隐式和显式等待,但是当加载了足够的元素时,我希望停止由引起的加载。是否可以这样做,因为调用仅在页面加载完成时才返回。

  • 问题内容: 当页面使用AJAX时可以使用隐式和显式等待,但是我想停止由于加载足够的元素而导致的加载。因为调用仅在页面加载完成后才返回,所以可以这样做吗? 问题答案: 是的,可以通过将功能设置为来实现。然后等待一个元素出现并调用以停止加载:

  • 如果预期的元素已经存在,我如何使Selenium继续下一个任务或停止加载外部JavaScript/CSS? 临时解决方案:滚动下方获取答案!

  • 如果孩子在焦点中(已被点击),我怎么能失去父母的悬停状态?我有一个菜单箭头(用OPEN代替了它,以减少代码),它在悬停状态下打开我的菜单和菜单项,当我单击它们时,菜单项就会聚焦。在菜单项点击后,我希望能够失去对我父母的关注,这样菜单就会消失。 如果可能的话,我会尽量避免使用javascript,这是我最好的尝试... 这是我的html null null 编辑 我在一个单页应用程序上使用Angul

  • 嗨,我有个大问题, 我一直在创建一个自动化脚本,并在构建过程中对其进行测试。我已经完成了第109行,现在第64行已经开始失败。 这条线路之前已经工作了很多次,在没有任何真实信息帮助解决的情况下突然停止。 这是我使用xpath从中提取元素的代码 我使用以下代码使用xpath选择列表中的第一项 这行代码一整天都运行得很好,现在每次执行脚本都会失败。我现在得到一个错误,没有找到元素。 当我导航到页面并使

  • 问题内容: 我在页面加载时触发了CSS 属性beeing 的问题。 问题是,当我将a 应用于元素时(例如:),然后在页面首次加载时,我的元素从黑色闪烁到它自己分配的颜色。 假设我有以下代码: CSS HTML 在页面加载,我会褪色从到。 我不想将颜色转换应用于伪类,因为那样不会将转换 应用于onMouseLeave 。 我真的很讨厌在网页上闪烁文本。到目前为止,除非我确实需要过渡,否则我一直在避免