我正在使用selenium和空闲来创建和重用cookie,用于selenium sicne每次登录到某个网站都是一件麻烦的事情。
用于保存cookie的示例代码:-
from webserver import keep_alive
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import pickle
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
driver.get("https://discord.com/login")
time.sleep(120)
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))在我能够将cookie保存在文件中之后,我编辑了代码,以便在下次执行
from webserver import keep_alive
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import pickle
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
driver.get("https://discord.com/login")
cookies = pickle.load(open("cookies.pkl", "rb"))
time.sleep(5)
for cookie in cookies:
driver.add_cookie(cookie)
driver.get("https://discord.com/login")但是,当尝试插入cookie时,它不起作用,从而产生错误:-
main.py:15: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
username_input = driver.find_element_by_name('email')
main.py:19: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
password_input = driver.find_element_by_name('password')
main.py:23: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
main.py:15: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
username_input = driver.find_element_by_name('email')
main.py:19: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
password_input = driver.find_element_by_name('password')
main.py:23: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
Traceback (most recent call last):
File "main.py", line 19, in <module>
driver.get("discord.com/login")
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 436, in get
main.py:15: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
username_input = driver.find_element_by_name('email')
main.py:19: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
password_input = driver.find_element_by_name('password')
main.py:23: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
Traceback (most recent call last):
File "main.py", line 23, in <module>
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 520, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1244, in find_element
return self.execute(Command.FIND_ELEMENT, {
main.py:15: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
username_input = driver.find_element_by_name('email')
main.py:19: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
password_input = driver.find_element_by_name('password')
main.py:23: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
Traceback (most recent call last):
File "main.py", line 23, in <module>
login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 520, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1244, in find_element
return self.execute(Command.FIND_ELEMENT, {
main.py:15: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
username_input = driver.find_element_by_name('email')
main.py:19: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
password_input = driver.find_element_by_name('password')
main.py:23: DeprecationWarning: find_element_by_* commands are deprecated
Traceback (most recent call last):
File "main.py", line 15, in <module>
driver.add_cookie(cookie)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1128, in add_cookie
Traceback (most recent call last):
File "main.py", line 15, in <module>
driver.add_cookie(cookie)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1128, in add_cookie
Traceback (most recent call last):
File "main.py", line 19, in <module>
driver.get("discord.com/login")
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 436, in get
Traceback (most recent call last):
File "main.py", line 19, in <module>
driver.get("discord.com/login")
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 436, in get如有任何帮助,将不胜感激。
发布于 2022-02-16 07:26:47
在这一行:
driver.get("discord.com/login")您将一个无效的参数传递给driver.get方法,因为discord.com/login不是有效的URL。
它应该是https://discord.com/login,因为您自己在前面几行使用它。
driver.get("https://discord.com/login")https://stackoverflow.com/questions/71137588
复制相似问题