Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Selenium Python恢复浏览器会话或使用现有浏览器窗口?_Python_Selenium_Webdriver - Fatal编程技术网

如何通过Selenium Python恢复浏览器会话或使用现有浏览器窗口?

如何通过Selenium Python恢复浏览器会话或使用现有浏览器窗口?,python,selenium,webdriver,Python,Selenium,Webdriver,我有一些代码如下所示: print 'Starting browser' browser = webdriver.Firefox() print 'Loading %s' % base_url browser.get(base_url) try: username_el = browser.find_element_by_css_selector('#username') username_el.send_keys(credentials['username']) p

我有一些代码如下所示:

print 'Starting browser'
browser = webdriver.Firefox()

print 'Loading %s' % base_url
browser.get(base_url)

try:
    username_el = browser.find_element_by_css_selector('#username')
    username_el.send_keys(credentials['username'])
    password_el = browser.find_element_by_css_selector('#password')
    password_el.send_keys(credentials['password'])
    password_el.send_keys(Keys.RETURN)
    print 'Logging in'
    browser.get(base_url)
except NoSuchElementException:
    print 'Already logged in'
    pass
问题是它每次都必须登录(从不触发异常)。这有两个问题:

  • 它使我的测试花费更长的时间,因为我每次都要等待它登录
  • 它对服务器的影响超过了需要
  • 因此,我想保存并恢复浏览器会话,或者让浏览器保持打开状态并让Selenium控制它

    这可能吗?如果是这样,怎么做?

    我会尝试使用get_cookie()获取任何会话cookie,将其保存在浏览器会话(磁盘或其他)之间的某个持久位置,并在启动新浏览器会话时使用add_cookie()重新添加cookie

    虽然还没有测试过…

    我会尝试使用get_cookies()获取任何会话cookies,将其保存在浏览器会话(磁盘或其他)之间的某个持久位置,并在启动新的浏览器会话时使用add_cookie()重新添加cookies


    但是还没有测试过…

    我会试试。我试图从我的“真实”浏览器中手动窃取cookies并将其复制到中,但没有成功。我将尝试使用
    获取cookies
    来抓取它们……也许会话有点不同。确实有效。它之所以失败,是因为它充满了谎言。实际上,它需要一个包含名称、值、域、主机、过期键的字典,而不是一个键/值对。我会试试。我试图从我的“真实”浏览器中手动窃取cookies并将其复制到中,但没有成功。我将尝试使用
    获取cookies
    来抓取它们……也许会话有点不同。确实有效。它之所以失败,是因为它充满了谎言。实际上,它需要一个包含名称、值、域、主机、过期键的字典,而不是一个键/值对。