【问题标题】:'WebDriver' object has no attribute 'navigate'“WebDriver”对象没有“导航”属性
【发布时间】:2020-12-11 04:59:32
【问题描述】:

尝试使用driver.navigate().to('https://example.com')

错误:

AttributeError: 'WebDriver' 对象没有属性 'navigate'

确实如此——这个网站上到处都提到过。

我不想使用 get(),因为我希望在会话中使用 persist 的 cookie。

【问题讨论】:

  • cookies 没有区别。
  • @pcalkins 这里有几个答案解释有区别
  • 他们混合了一个不允许添加书签的单页应用程序(真的是不好的做法......他们应该使用哈希......)与 Selenium 功能。
  • 许多网站都在使用单页架构,不允许使用“后退”按钮或为特定页面添加书签。这是因为他们没有更新 DOM 更改的 URL。他们可以通过在 url 中使用“#”来避免这种情况(它像书签一样处理,因此页面不会更改)并使用哈希后的值作为名称/值对来触发 hashchange 事件处理程序。不管这与 Selenium 或您是否使用 .get() 或 .navigate() 无关
  • 规范似乎有所不同,但我不确定我是否理解:w3.org/TR/webdriver/#navigate-to 不过这些都不应该影响 cookie。值得注意的是,有些服务器会做路由,这可以使不同的路径加载相同的页面,但会触发不同的 DOM 更新。 (“/”实际上与“#”相同)

标签: python selenium


【解决方案1】:
driver.navigate().to('https://example.com')

是Java,在python中只有get是有的

它使用相同的浏览器会话和 cookie,

如果你不想等待页面加载,你可以使用页面加载策略

你标记的答案也是错误的,

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html#navigate()

navigate WebDriver.Navigation navigate() 一个允许 驱动程序访问浏览器的历史记录并导航到给定的 URL。 返回:一个 WebDriver.Navigation,允许选择要执行的内容 下一步

navigation 的唯一用途是转到历史记录以进行前后导航,它与 cookie 或会话没有任何关系

【讨论】:

  • 有趣的是python只有.get()...我认为在C#中你只有.navigate()
猜你喜欢
  • 2022-01-08
  • 2022-11-24
  • 2021-06-23
  • 1970-01-01
  • 2022-06-29
  • 2022-06-25
  • 2022-11-19
  • 2023-01-07
  • 2016-10-14
相关资源
最近更新 更多