webdriver.get() 和 webdriver.navigate() 之间的区别
和 方法有什么区别?是否有任何此方法或其他方法等待页面内容加载?我真正需要的是像Selenium 1.0这样的东西,但要通过.get()
navigate()
WaitForPageToLoad
webdriver
有什么建议吗?
和 方法有什么区别?是否有任何此方法或其他方法等待页面内容加载?我真正需要的是像Selenium 1.0这样的东西,但要通过.get()
navigate()
WaitForPageToLoad
webdriver
有什么建议吗?
导航
要使用 WebDriver 执行的第一件事是导航到页面。执行此操作的正常方法是调用 :
get
driver.get("http://www.google.com");
WebDriver 将等到页面完全加载(即事件已触发)后,再将控制权返回给测试或脚本。值得注意的是,如果你的页面在加载时使用了大量的AJAX,那么WebDriver可能不知道它何时完全加载。如果您需要确保此类页面已完全加载,则可以使用。
onload
waits
导航:历史和位置
前面,我们介绍了使用命令 () 导航到页面的过程,如您所见,WebDriver 具有许多较小的、以任务为中心的界面,导航是一项有用的任务。由于加载页面是一项基本要求,因此执行此操作的方法存在于 WebDriver 主界面上,但它只是以下各项的同义词:
get
driver.get("http://www.example.com")
driver.navigate().to("http://www.example.com");
重申一下:
navigate().to()
和get()
执行完全相同的操作。一个比另一个更容易打字!该界面还公开了在浏览器历史记录中来回移动的功能:
navigate
driver.navigate().forward(); driver.navigate().back();
(着重号后加)
他们似乎都导航到给定的网页并引用@matt答案:
navigate().to()
并做完全相同的事情。get()
单页应用程序是一个例外。
这两种方法之间的区别不在于它们的行为,而在于应用程序的工作方式以及浏览器如何处理它的行为。
navigate().to()
通过更改 URL 导航到页面,就像执行向前/向后导航一样。
而, 刷新页面以更改 URL。get()
因此,在应用程序域发生更改的情况下,这两种方法的行为都类似。也就是说,在这两种情况下都会刷新页面。但是,在单页应用程序中,虽然不刷新页面,但要刷新。navigate().to()
get()
此外,这是由于应用程序被刷新而使用浏览器历史记录时丢失的原因。get()