我已经登录到网站,现在试图再次加载网站URL,并期望它自动登录,因为我正在从已经登录的页面添加cookie,但它会生成以下异常,
代码:
import time
from selenium.webdriver import Chrome
driver = Chrome("C:/Users/jupiter/PycharmProjects/webdriver/chromedriver.exe")
driver.get("https://www.flipkart.com/")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_xpath("/html/body/div[2]/div/div/button").click()
time.sleep(5)
driver.find_element_by_xpath("//a[contains(text(), 'Login')]").click()
username =driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[1]/input")
username.send_keys("xyz")
password = driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[2]/input")
password.send_keys("abc@xyz")
driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[3]/button").click()
cookies =driver.get_cookies()
driver = Chrome("C:/Users/jupiter/PycharmProjects/webdriver/chromedriver.exe")
driver.add_cookie(cookies)
driver.get("https://www.flipkart.com/")
例外:
引发exception_class(消息、屏幕、堆栈(selenium.com.mon.exceptions.WebDriverException:消息:无效argument:缺少"cookie"(会话信息:chrome=81.0.4044.113(
(驱动程序信息:chromedriver=81.0.404.469(6813546031a4bc83f717a2ef7cd4ac6ec1199132参考文献/分支头/4044@{#776}(,平台=WindowsNT 10.0.16299 x86_64(
而不是
driver.add_cookie(cookies)
你需要使用
for cookie in cookies:
driver.add_cookie(cookie)
因为driver.add_cookie
每次调用添加一个cookie,但driver.get_cookies()
返回cookie列表。
您可以使用refresh
方法
driver.get(url)
driver.add_cookie({"name": "example", "value": "example"})
driver.refresh()
现在,当刷新页面时,它会加载cookie。