在Selenium中,get()和navigation()。to()方法之间有什么区别?


回答 1:

导航

使用WebDriver要做的第一件事是导航到页面。通常的方法是调用get:

driver.get(“ http://www.google.com”);

WebDriver将等待页面完全加载(即,触发了onload事件),然后再将控制权返回给测试或脚本。值得注意的是,如果您的页面在加载时使用了很多AJAX,则WebDriver可能不知道何时完全加载。如果需要确保此类页面已完全加载,则可以使用等待。

导航:历史和位置

之前,我们介绍了使用get命令(driver.get(“ http://www.example.com”)导航到页面)如您所见,WebDriver具有许多较小的,以任务为中心的界面,以及导航是一项有用的任务。由于加载页面是一项基本要求,因此实现此方法的方法位于WebDriver主界面上,但它只是以下内容的同义词:

driver.navigate()。to(“ http://www.example.com”);

重申一下:navigation()。to()和get()做完全相同的事情。一个人比另一个人容易打字!

导航界面还提供了在浏览器的历史记录中来回移动的功能:

driver.navigate()。forward();
driver.navigate()。back();

他们似乎都导航到给定的网页:

navigation()。to()和get()完全一样。

单页应用程序是一个例外。

这两种方法之间的区别不在于它们的行为,而在于应用程序工作方式以及浏览器如何处理它的行为。

navigation()。to()可以通过更改URL来导航到该页面,例如进行向前/向后导航。

而get()刷新页面以更改URL。

因此,在应用程序域发生更改的情况下,两种方法的行为都相似。即,在两种情况下都刷新页面。但是,在单页应用程序中,当navigation()。to()不会刷新页面时,get()会刷新页面。

此外,这是由于刷新应用程序而使用get()时浏览器历史记录丢失的原因。

P.S点数:webdriver.get()和webdriver.navigate()之间的区别


回答 2:

运行脚本时,我们要做的第一件事是打开浏览器并加载网页。我们通常使用“ driver.get(“ url”);”加载网页。每次我们使用此命令时,页面都会刷新。

我们还可以使用“ driver.navigate()。to(“ url”);”加载网页。就行为而言,这两个命令的工作方式相同。但是navigation()。to()还具有其他功能,例如Navigation()。forward(),navige()。back()和navigation()。refresh()。

所以区别是driver.get()从不存储历史记录,而driver.navigate()。to()则存储浏览器历史记录,以便用于前进和后退等其他命令。

在单页应用程序中,当navigation()。to()通过更改URL像前进/后退导航到页面时,get()刷新页面。

有关此堆栈溢出的更多参考


回答 3:

运行脚本时,我们要做的第一件事是打开浏览器并加载网页。我们通常使用“ driver.get(“ url”);”加载网页。每次我们使用此命令时,页面都会刷新。

我们还可以使用“ driver.navigate()。to(“ url”);”加载网页。就行为而言,这两个命令的工作方式相同。但是navigation()。to()还具有其他功能,例如Navigation()。forward(),navige()。back()和navigation()。refresh()。

所以区别是driver.get()从不存储历史记录,而driver.navigate()。to()则存储浏览器历史记录,以便用于前进和后退等其他命令。

在单页应用程序中,当navigation()。to()通过更改URL像前进/后退导航到页面时,get()刷新页面。

有关此堆栈溢出的更多参考


回答 4:

运行脚本时,我们要做的第一件事是打开浏览器并加载网页。我们通常使用“ driver.get(“ url”);”加载网页。每次我们使用此命令时,页面都会刷新。

我们还可以使用“ driver.navigate()。to(“ url”);”加载网页。就行为而言,这两个命令的工作方式相同。但是navigation()。to()还具有其他功能,例如Navigation()。forward(),navige()。back()和navigation()。refresh()。

所以区别是driver.get()从不存储历史记录,而driver.navigate()。to()则存储浏览器历史记录,以便用于前进和后退等其他命令。

在单页应用程序中,当navigation()。to()通过更改URL像前进/后退导航到页面时,get()刷新页面。

有关此堆栈溢出的更多参考


回答 5:

运行脚本时,我们要做的第一件事是打开浏览器并加载网页。我们通常使用“ driver.get(“ url”);”加载网页。每次我们使用此命令时,页面都会刷新。

我们还可以使用“ driver.navigate()。to(“ url”);”加载网页。就行为而言,这两个命令的工作方式相同。但是navigation()。to()还具有其他功能,例如Navigation()。forward(),navige()。back()和navigation()。refresh()。

所以区别是driver.get()从不存储历史记录,而driver.navigate()。to()则存储浏览器历史记录,以便用于前进和后退等其他命令。

在单页应用程序中,当navigation()。to()通过更改URL像前进/后退导航到页面时,get()刷新页面。

有关此堆栈溢出的更多参考