嘿,我正在尝试制作一个自动发送Whatsapp消息的程序。
我目前正在使用python,Firefox和selenium来实现这一目标。
问题是,每次我调用$(SolutionDir)Bin\$(Configuration)\
时,它都会打开一个新的firefox浏览器实例,空白,没有上次运行的记忆。它让我每次运行时都会扫描条形码。
driver.get(url)
我尝试使用个人资料,但似乎没有任何影响。
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import FirefoxProfile
cp_profile = webdriver.FirefoxProfile("/Users/Hodai/AppData/Roaming/Mozilla/Firefox/Profiles/v27qat5d.whatsapp_profile")
driver = webdriver.Firefox(executable_path="/Users/Hodai/Desktop/geckodriver",firefox_profile=cp_profile)
driver.get('http://web.whatsapp.com')
#Scan the code before proceeding further
input('Enter anything after scanning QR code')
答案 0 :(得分:1)
我认为最简单的方法是在扫描qrcode后保存您的Cookie并手动将它们推送到Selenium。
# Load page to be able to set cookies
driver.get('http://web.whatsapp.com')
# Set saved cookies
cookies = {'name1': 'value1', 'name2', 'value2'}
for name in cookies:
driver.add_cookie({
'name': name,
'value': cookies[name],
})
# Load page using cookies
driver.get('http://web.whatsapp.com')
要获取Cookie,您可以使用控制台(F12),网络标签,右键点击请求,复制=>复制请求标题。
答案 1 :(得分:1)
最后我使用了chromedriver来实现我的目标。 我尝试使用泡菜饼干,但它有点棘手,因为它记得只为同一个域的cookie。 所以我将用户数据用于chrome。 现在它就像一个魅力。谢谢大家。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("user-data-dir=C:/Users/Designer1/AppData/Local/Google/Chrome/User Data/Profile 1")
driver = webdriver.Chrome(chrome_options=options,executable_path="C:\webdrivers\chromedriver.exe")
答案 2 :(得分:0)
不应该那样。它只在使用新变量初始化时打开新窗口或程序再次启动。这是chrome的代码。无论您拨打driver.get(url)
多少次,它都会在同一个浏览器窗口中打开网址
from selenium import webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome(executable_path=r"C:\new\chromedriver.exe")
driver.get('https://www.olx.com.pk/lahore/apple/q-iphone-6s/?search%5Bfilter_float_price%3Afrom%5D=40000&search%5Bfilter_float_price%3Ato%5D=55000')
time.sleep(10)
driver.get('https://www.olx.com.pk/lahore/apple/q-iphone-6s/?search%5Bfilter_float_price%3Afrom%5D=40000&search%5Bfilter_float_price%3Ato%5D=55000')
time.sleep(10)
driver.get('https://www.olx.com.pk/lahore/apple/q-iphone-6s/?search%5Bfilter_float_price%3Afrom%5D=40000&search%5Bfilter_float_price%3Ato%5D=55000')
time.sleep(10)
如果问题已解决或您正在尝试执行其他操作,请告诉我。