【问题标题】:Selenium webdriver clears cookies when navigating to new domainSelenium webdriver 在导航到新域时清除 cookie
【发布时间】:2018-10-05 15:56:05
【问题描述】:
options = webdriver.ChromeOptions()

#options.add_argument('-headless')
browser = webdriver.Chrome(executable_path="./chromedriver", options=options)

browser.get("http://127.0.0.1:8080/")
print browser.title
browser.find_element_by_name('username').send_keys("admin")
browser.find_element_by_name("password").send_keys("hunter2")
browser.find_element_by_tag_name("button").click()
print browser.get_cookies()
print 'loading another page: ' + url
#example url = example.com
browser.get(url)

我正在尝试进行涉及 CORS 的自动化测试。所以,我的要求是我成功登录域 A 并设置一些 cookie。这行得通,当我执行get_cookies() 时,我看到了 cookie 设置。接下来,我导航到另一个域 B,它向域 A 发出 CORS 请求(所有 CORS 标头都已正确设置,并手动测试)。但是这个请求失败了,因为当我导航到域 B 时,cookie 被清除了,所以请求不成功。

有没有办法强制cookies不清除?

注意:在 OSX 上与 Chrome 和 Firefox 驱动程序的行为相同

【问题讨论】:

  • 你在哪里声明 url?你在哪里检查新的 url cookie?
  • 您能否手动检查 cookie 是否是每个会话的,这意味着当您从 siteA 导航到 siteB 会话时终止并且 cookie 被删除。
  • @DarkSuniuM : URL 是作为函数的参数获取的(此处未显示)检查 cookie 是手动完成的,因为我没有运行这个无头(用于测试)
  • @Infern0 - 在驱动程序打开的chrome进程中,如果我手动测试,cookie不会被清除。看来,只有当调用 browser.get(url) 并且 URL 是不同的域时,它才会被 selenium 清除。
  • @asudhak 您没有提供任何信息供我们进行分析。您能否使用二进制信息和您尝试 AutomateManual Steps 以及相关的 HTML 和您看到的错误来更新问题?

标签: python selenium selenium-webdriver


【解决方案1】:

使用browser.navigate().to(url) 而不是get()

致谢:https://stackoverflow.com/a/42465954/4536543

【讨论】:

    猜你喜欢
    • 2013-04-14
    • 2018-12-03
    • 2014-10-21
    • 2016-05-26
    • 2018-10-31
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多