python - Firefox、Selenium、Webdriver:如何以编程方式清除所有 cookie 和站点数据?
问题描述
我有以下设置: Python 3.7 Selenium 3.141.0 Firefox 67.0.4 Geckodriver 0.24.0
我编写了一个从酒店运营商网站上抓取酒店数据的程序。使用该链接作为查询,该程序向该站点提供城市、入住和退房日期、人数等。
程序启动 Firefox 并进行第一次查询,一切顺利。问题从第二个查询开始出现,因为无论以下链接中提供什么,它都会在第一个查询中继续显示城市的结果,只更改日期。
当 webdriver 重新启动时,第一个查询恢复正常,但从第二个查询开始,一切都像以前一样。
我尝试使用 delete_all_cookies() 并将 webdriver 配置文件配置为不创建任何缓存,但它不起作用。我尝试使用 Python 删除配置文件文件夹中的所有文件,但它仍然无法正常工作。
奇怪的是,如果我进入浏览器并手动删除“Cookie 和其他站点数据”就可以了,但我找不到以编程方式执行此操作的方法。在 Firefox 和 Chrome 中都试过了。
重新启动 webdriver 也可以。我知道它会清除个人资料并每次都从新的个人资料开始。但这从时间角度来看太昂贵了。
#First link, it all goes ok
URL = 'https://www.wyndhamhotels.com/en-us/hotels/beijing-china?brand_id=ALL&checkInDate=8/10/2019&checkOutDate=8/11/2019&useWRPoints=false&children=0&adults=2&rooms=1'
DRIVER.get(URL)
# From the second link on, no matter how many searches I d, I always get the results for Beijing
URL = 'https://www.wyndhamhotels.com/en-us/hotels/bremen-germany?brand_id=ALL&checkInDate=9/11/2019&checkOutDate=9/11/2019&useWRPoints=false&children=0&adults=2&rooms=1'
DRIVER.get(URL)
URL = 'https://www.wyndhamhotels.com/en-us/hotels/paris-france?brand_id=ALL&checkInDate=9/11/2020&checkOutDate=9/11/2020&useWRPoints=false&children=0&adults=2&rooms=1'
DRIVER.get(URL)
有没有办法以编程方式删除所有 cookie 和其他站点数据,就像您在 webdriver 运行时从菜单手动执行时那样?或者,换一种思路,当您从浏览器菜单中手动删除 cookie 和其他站点数据时,究竟会发生什么?什么被删除,从哪里删除?
解决方案
推荐阅读
- javascript - 数组映射函数无法在简单示例中推送对象
- python - 我在 python 文件操作期间得到错误文件名未定义。如何在 for 语句之前定义它
- c# - 在 LINQ 的动态表达式和查询中使用 DefaultIfEmpty
- odata - 如何在 OData 中的 hasdynamicproperty 函数中传递 lambda 表达式?
- r - 包含时移时润滑 ymd_hms() 奇怪的输出
- c# - WithArgumentsForConstructor 与 A
.那个.包含 - c# - 将身份验证系统添加到现有的 ASP.NET MVC / C# 项目
- firebase - Firebase 服务“错误:找不到模块 './src/index'”
- html - 锚链接滚动到溢出隐藏的溢出内容
- javascript - 打开 Chrome 选项卡后,如何将侦听器添加到该选项卡