使用selenium python和Firefox重新打开相同的浏览器窗口

时间:2018-05-17 21:19:40

标签: python selenium firefox webdriver selenium-chromedriver

嘿,我正在尝试制作一个自动发送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')

3 个答案:

答案 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)

如果问题已解决或您正在尝试执行其他操作,请告诉我。