webdriver.get()和webdriver.navigate()之间的区别
||
get()
和navigate()
方法有什么区别?
这个或其他方法中的任何一个是否等待页面内容加载?
我真正需要的是Selenium 1.0的WaitForPageToLoad
,但要通过webdriver
使用。
有什么建议么?
没有找到相关结果
已邀请:
13 个回复
咖哀烈
:
WebDriver将等到页面完全加载(即触发了
事件)之后,才将控制权返回给测试或脚本。值得注意的是,如果您的页面在加载时使用了很多AJAX,则WebDriver可能不知道它何时完全加载。如果需要确保此类页面已完全加载,则可以使用
。 导航:历史和位置 之前,我们介绍了使用
命令(
)导航到页面的方法。如您所见,WebDriver具有许多较小的,以任务为中心的界面,导航是一项有用的任务。由于加载页面是一项基本要求,因此实现此方法的方法位于WebDriver主界面上,但它只是以下内容的同义词:
重申一下:
和
做完全相同的事情。一个比另一个更容易键入!
界面还提供了在浏览器历史记录中来回移动的功能:
(添加了强调)
哩翔购
和
做的完全相同。 单页应用程序是一个例外。 这两种方法之间的区别不在于其行为,而在于应用程序工作方式以及浏览器如何处理的行为。
像进行前进/后退导航一样通过更改URL导航到页面。 而“ 0”刷新页面以更改URL。 因此,在应用程序域发生更改的情况下,两种方法的行为都相似。也就是说,在两种情况下页面都会刷新。但是,在单页应用程序中,尽管
不会刷新页面,而
会刷新页面。 此外,这是由于刷新应用程序而使用
时浏览器历史记录丢失的原因。 最初回答:https://stackoverflow.com/a/33868976/3619412
献导外拘
:它曾经去过特定的网站,但是它不维护浏览器的历史记录和cookie,因此,我们不能使用前进和后退按钮,如果单击该按钮,则页面将无法获得时间表
:它曾经用于访问特定的网站,但它保留了浏览器的历史记录和cookie,因此我们在测试用例的编码过程中可以使用前进和后退按钮在页面之间导航
蓄荣糖些
时,将保留历史记录,但是使用
时将丢失历史记录。 我的测试之一失败了,因为我连续两次使用
,然后再进行
。由于历史记录已丢失,因此当返回时,它会转到“关于”页面,并引发错误:
款去芳尾脊
浏览器将“ 30”方法作为片段标识符处理,并且从先前的URL中保留了JavaScript变量。 同时,浏览器将使用“ 31”方法作为地址/位置/ URL栏输入,并且不会从先前的URL中保留JavaScript变量。
镶骄册筷
荤碗
期差骇蓟
用于导航特定的URL(网站)并等待页面加载。
用于导航到特定的URL,而无需等待页面加载。它维护浏览器历史记录或cookie,以向后或向前导航。
嘘崇蔡对
。为了区分代码,您可以在打开浏览器实例后使用ѭ35来启动第一个URL,尽管两者都可以使用。
冕偷淮款
和
都用于转到特定的网页。关键区别在于
:它不保留浏览器历史记录和cookie,并且要等到页面完全加载为止。
:也用于转到特定网页。它维护浏览器历史记录和cookie,并且不会完全加载页面,并且在页面之间进行导航,后退,前进和刷新。
爆山
情况2: 在下面的代码中,我使用了Navigation()而不是get(),但是片段(Case-1和Case-2)的工作原理完全相同,只是case-2的执行时间少于case-1的执行时间
所以get()和Navigation()之间的主要区别是 执行相同的任务,但是通过使用navigation(),您可以移动 会话历史记录中的back()或forward()。 navigation()比get()更快,因为Navigation()不等待 页面完全或完全加载。
结乳
据我所知,导航允许您使用浏览器历史记录。
糖固傻染