Robotframework - Selenium - 如何在不依赖页面中的特定元素的情况下验证页面完全(成功)加载?
Robotframework - Selenium - How to verify page loaded completely (successfully) without relying on a specific element in the page?
我想知道 Selenium 中是否有任何东西可以验证页面是否完全加载而不依赖页面中的特定元素出现(同时使用“等待页面包含”或类似关键字)。
这个想法是可重用性。如果以后需要向机器人自动化添加新网站,我不想依赖一个页面中可能存在但另一个页面中不存在的特定元素来验证页面是否已完全加载。
Robot Framework - Selenium Library 中是否有关键字可以解决这个问题?
谢谢!
编辑 - 我知道有些 AJAX 请求无论完成与否(或者如果它们一直持续下去)都不可能或极难得出结论,所以让我们假设该网站没有任何这些.
页面加载完成后,所有请求都已完成。
driver.execute_script("return document.readyState === 'complete'")
使用execute script document.readyState ,如果returns完成则表示加载完成
但是如果没有 ajax 你不必这样做 selenium 会自动完成所以你的问题将无效:
normal This will make Selenium WebDriver to wait for the entire page
is loaded. When set to normal, Selenium WebDriver waits until the load
event fire is returned.
By default normal is set to browser if none is provided.
我找不到一些内置选项,但有另一种方法可以实现。检查您的网络应用程序是否使用任何显示进度条的第三方库,如果是,则可能存在 returns 页面加载状态的功能,包括 Ajax 调用。如果没有,那么你可以要求开发者添加一些进度条,例如 Pace.JS
document.readyState 不等待 Ajax 电话,我个人认为它不太有用。
我想知道 Selenium 中是否有任何东西可以验证页面是否完全加载而不依赖页面中的特定元素出现(同时使用“等待页面包含”或类似关键字)。 这个想法是可重用性。如果以后需要向机器人自动化添加新网站,我不想依赖一个页面中可能存在但另一个页面中不存在的特定元素来验证页面是否已完全加载。 Robot Framework - Selenium Library 中是否有关键字可以解决这个问题?
谢谢!
编辑 - 我知道有些 AJAX 请求无论完成与否(或者如果它们一直持续下去)都不可能或极难得出结论,所以让我们假设该网站没有任何这些. 页面加载完成后,所有请求都已完成。
driver.execute_script("return document.readyState === 'complete'")
使用execute script document.readyState ,如果returns完成则表示加载完成
但是如果没有 ajax 你不必这样做 selenium 会自动完成所以你的问题将无效:
normal This will make Selenium WebDriver to wait for the entire page is loaded. When set to normal, Selenium WebDriver waits until the load event fire is returned.
By default normal is set to browser if none is provided.
我找不到一些内置选项,但有另一种方法可以实现。检查您的网络应用程序是否使用任何显示进度条的第三方库,如果是,则可能存在 returns 页面加载状态的功能,包括 Ajax 调用。如果没有,那么你可以要求开发者添加一些进度条,例如 Pace.JS
document.readyState 不等待 Ajax 电话,我个人认为它不太有用。