首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >driver.get(url)与driver.navigate().to(url);

driver.get(url)与driver.navigate().to(url);
EN

Stack Overflow用户
提问于 2020-07-26 15:24:22
回答 3查看 3.2K关注 0票数 0

Google的回答是: get()用于导航特定的URL(网站)并等待页面加载。司机。导航()用于导航到特定的URL,而不等待页面加载。

Selenium文档:文档的document.readyState属性描述当前文档的加载状态。默认情况下,WebDriver将延迟响应driver.get() (或) driver.navigate().to()调用,直到文档就绪状态完成为止。

我的查询是在Google中--据说,导航方法不会等到页面加载,而这与Selenium文档中添加的点不一致。请帮我理解一下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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()刷新页面。

这里有更多信息- webdriver.get()和webdriver.navigate()之间的区别

票数 1
EN

Stack Overflow用户

发布于 2020-07-26 17:35:16

简单地说,得到()方法在WebDriver接口中扩展了SearchContext,定义为:

代码语言:javascript
复制
/**
 * 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);

因此,您可以使用:

代码语言:javascript
复制
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();
票数 0
EN

Stack Overflow用户

发布于 2022-08-28 04:12:20

代码语言:javascript
复制
//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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63102108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档