谷歌的答案:get()用于导航特定的URL(网站),并等待页面加载。驱动程序。导航()用于导航到特定的URL,而不是等待页面加载。
Selenium文档:文档的文档. readyState属性描述了当前文档的加载状态。默认情况下,WebDriver将暂停响应driver.get()(或)driver.Navigate().to()调用,直到文档就绪状态完成
我的查询在谷歌据说,导航方法不会等到页面加载,这与Selenium文档中添加的点不一致。请帮助我理解。
我们在运行脚本时做的第一件事就是打开浏览器并加载网页。我们通常使用driver. get("url");
来加载网页。每次我们使用这个命令时,页面都会被刷新。
我们还可以使用river. Navigate().to("url');
来加载网页。这两个命令在行为方面的工作方式相同。但是Navigate().to()
还具有其他功能,例如Navigate()。转发()
,导航()。back()
和导航()。刷新()
。
所以不同的是river. get()
从不存储历史记录,而river.Navigate().to()
存储浏览器历史记录,以便用于前进和后退等其他命令。
在单页应用程序中,当Navigate(). to()
通过更改URL(如前进/后退)导航到页面时,get()
刷新页面。
更多信息在这里-webdriver. get()和webdriver.Navigate()之间的区别
简单来说,WebDriver接口中的get()方法扩展了SearchContext并定义为:
/**
* Load a new web page in the current browser window. This is done using an HTTP POST operation,
* and the method will block until the load is complete.
* This will follow redirects issued either by the server or as a meta-redirect from within the
* returned HTML.
* Synonym for {@link org.openqa.selenium.WebDriver.Navigation#to(String)}.
*/
void get(String url);
因此,您可以使用:
driver.get("https://www.google.com/");
另一方面,Navigate()是允许WebDriver实例(即驱动程序
)访问浏览器历史记录以及导航到给定URL的抽象。方法和用法如下:
>
to(java. lang.String url)
:在当前浏览器窗口中加载新网页。
driver.navigate().to("https://www.google.com/");
to(java.net.URLurl)
:重载的to(String)版本,可以轻松传入URL。
刷新()
:刷新当前页面。
driver.navigate().refresh();
back()
:移回浏览器历史记录中的单个“项目”。
driver.navigate().back();
转发()
:在浏览器的历史记录中向前移动单个“项目”。
driver.navigate().forward();
//Convenient
driver.get("https://selenium.dev");
//Longer way
driver.navigate().to("https://selenium.dev");
28/08/2022
两者没有区别,只是一个是长形式,一个是Java的短形式。
https://www.selenium.dev/documentation/webdriver/browser/navigation/