📜  在Selenium Python中添加和删除 Cookie

📅  最后修改于: 2022-05-13 01:54:38.334000             🧑  作者: Mango

在Selenium Python中添加和删除 Cookie

Selenium 的Python模块是为使用Python执行自动化测试而构建的。 Selenium Python绑定提供了一个简单的 API 来使用Selenium WebDriver 编写功能/验收测试。要使用Selenium Python打开网页,请查看 - 使用 get 方法导航链接 - Selenium Python。仅仅能够去一些地方并不是很有用。我们真正想做的是与页面交互,或者更具体地说,与页面中的 HTML 元素交互。有多种使用Selenium查找元素的策略,checkout – Locating Strategies。 Selenium WebDriver 提供了各种有用的方法来控制会话,或者换句话说,浏览器。例如,添加 cookie、按下返回按钮、在选项卡之间导航等。
使用 cookie 通常是必不可少的,可能需要手动添加或手动删除 cookie 以实现网站的某些阶段,例如身份验证。在selenium Python中使用 cookie 的各种方法是 -

add_cookie 驱动方法

add_cookie方法用于将 cookie 添加到当前会话。此 cookie 可由网站本身或您使用。

句法 -

add_cookie(cookie_dict)

例子 -
现在可以使用 add_cookie 方法作为驱动方法,如下所示 -

driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’})

在项目访问中检查 add_cookie 方法的个别实现 – add_cookie 驱动方法。

get_cookie 驱动方法

get_cookie方法用于获取具有指定名称的 cookie。如果找到则返回 cookie,否则返回 None。
句法 -

driver.get_cookie(name)

例子 -
现在可以使用 get_cookie 方法作为驱动方法,如下所示 -

driver.get("https://www.geeksforgeeks.org/")
driver.get_cookie("foo")

在项目访问中检查 get_cookie 方法的个别实现 – get_cookie 驱动方法。

delete_cookie 驱动方法

delete_cookie方法用于删除具有指定值的 cookie。
句法 -

driver.delete_cookie(name)

例子 -
现在可以使用 delete_cookie 方法作为驱动方法,如下所示 -

driver.get("https://www.geeksforgeeks.org/")
driver.delete_cookie("foo")

在项目访问中检查 delete_cookie 方法的个别实现 - delete_cookie 驱动程序方法。

get_cookies 驱动方法

get_cookies方法用于获取当前会话中的所有 cookie。它返回一组字典,对应于当前会话中可见的 cookie。

句法 -

driver.get_cookies()

例子 -
现在可以使用 get_cookies 方法作为驱动方法,如下所示 -

driver.get("https://www.geeksforgeeks.org/")
driver.get_cookies()

要检查项目中 get_cookies 方法的个别实现,请访问 – get_cookies 驱动程序方法。

如何在Selenium Python中使用 cookie?

为了演示, Selenium Python中的 cookie。让我们访问 https://www.geeksforgeeks.org/ 并对驱动程序对象进行操作。

程序 -

# import webdriver
from selenium import webdriver
  
# create webdriver object
driver = webdriver.Firefox()
  
# get geeksforgeeks.org
driver.get("https://www.geeksforgeeks.org/")
  
# add_cookie method driver
driver.add_cookie({"name" : "foo", "value" : "bar"})
  
# get browser cookie
driver.get_cookie("foo")
  
  
# get all cookies in scope of session
print(driver.get_cookies())
  
# delete browser cookie
driver.delete_cookie("foo")
  
# clear all cookies in scope of session
driver.delete_all_cookies()

输出 -
添加名称为 foo 和值 bar 的 Cookie,如下所示 -
add_cookie-driver-method-Selenium-Python
终端输出 -
get_cookies-driver-method-Selenium-Python