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

时间:2012-06-27 19:00:19

标签: 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'])
    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

问题是它必须每次都登录(永远不会跳过异常)。这有两个问题:

  1. 这使我的测试需要更长时间,因为我必须等待每次登录
  2. 它点击服务器的次数超过了
  3. 所以,我想要保存并恢复我的浏览器会话,或者让浏览器保持打开状态并让Selenium控制它。

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

1 个答案:

答案 0 :(得分:1)

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

虽然没有测试过这个......