Google的回答是: get()用于导航特定的URL(网站)并等待页面加载。司机。导航()用于导航到特定的URL,而不等待页面加载。
Selenium文档:文档的document.readyState属性描述当前文档的加载状态。默认情况下,WebDriver将延迟响应driver.get() (或) driver.navigate().to()调用,直到文档就绪状态完成为止。
我的查询是在Google中--据说,导航方法不会等到页面加载,而这与Selenium文档中添加的点不一致。请帮我理解一下。
发布于 2020-07-26 15:50:07
我们在运行脚本时做的第一件事是打开浏览器并加载网页。我们通常使用driver.get(“url”);来加载网页。每次使用此命令时,页面都将被刷新。
我们也可以使用driver.navigate().to(“url’);加载网页。这两个命令在行为方面以相同的方式工作。但navigate().to()还具有其他功能,如navigate().forward()、navigate().back()和navigate().refresh()。
因此,区别在于driver.get()从不存储历史,而driver.navigate().to()存储浏览器历史,以便用于其他命令的转发和后退等。
在单页应用程序中,当navigate().to()通过更改URL (如向前/向后)导航到页面时,get()刷新页面。
发布于 2020-07-26 17:35:16
简单地说,得到()方法在WebDriver接口中扩展了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/");另一方面,导航()是抽象化,它允许WebDriver实例(即driver )访问浏览器的历史记录并导航到给定的URL。这些方法和用法如下:
to(java.lang.String url):在当前浏览器窗口中加载一个新的网页。
Driver.navigate().to(“https://www.google.com/"”);to(java.net.URL url):to(String)的重载版本,它使得传递URL变得很容易。refresh():刷新当前页面。
driver.navigate().refresh();back():移回浏览器历史记录中的单个“项”。
driver.navigate().back();forward():将浏览器历史记录中的单个“项”向前移动。
driver.navigate().forward();发布于 2022-08-28 04:12:20
//Convenient
driver.get("https://selenium.dev");
//Longer way
driver.navigate().to("https://selenium.dev");2022年8月28日
两者之间没有区别,只是一个是长形式,另一个是短形式的Java。
https://www.selenium.dev/documentation/webdriver/browser/navigation/
https://stackoverflow.com/questions/63102108
复制相似问题