2011-10-10 173 views
5

當我在Win XP Internet Explorer 8上運行我的Selenium測試時,測試不會全新開始。它將使用之前運行的Cookie /緩存開始測試。當我在Firefox中運行測試時不會發生這種情況。 有沒有人有這方面的解決方法?最好在Python
我的一些想法:
- 必須在刪除所有臨時文件tearDownClass運行一個腳本:C:\ Documents和Settings \用戶\本地設置\ Temporary Internet Files文件
- 而不是「* iehta「作爲瀏覽器,我將它設置爲Internet Explorer私人模式」*自定義C:\ Program Files \ Internet Explorer \ iexplore.exe -private「( - 因爲我的語法關閉而無法工作?Selenium Internet Explorer 8緩存問題

謝謝

import unittest, inspect, time, re, os 
from selenium import selenium 

class TESTVerifications(unittest.TestCase): 
@classmethod 
def setUpClass(self): 

    self.selenium = selenium("localhost", 4444, "*iehta", "https://workflowy.com/") 
    self.selenium.start() 
    self.selenium.set_timeout("60000") 
    print("setUpClass")  
    self.selenium.window_maximize() 
    self.selenium.open("/") 


def setUp(self): 
    self.verificationErrors = [] 


def test_login_6(self): 
    sel = self.selenium 
    sel.open("/") 
    sel.type("css=input[id='id_username']",'[email protected]' ) 
    sel.type("css=input[id='id_password']",'password') 
    sel.click("css=form[id='login'] > input.submit") 
    sel.wait_for_page_to_load("60000") 
    self.failUnless(sel.is_element_present("id=logout")) 


def tearDown(self): 
    #self.selenium.stop() 
    self.assertEqual([], self.verificationErrors,"Results: " + str(self.verificationErrors)) 
@classmethod  
def tearDownClass(self): 

    self.selenium.stop() 
    print("tearDownClass") 

if __name__ == "__main__": 
unittest.main() 

回答

1

您可以使用sel.delete_all_visible_cookies()這將刪除由當前域創建的cookie。如果您有多個域,您可以使用以下命令:

def clean_history(sel, domains): 
    temp = sel.get_location() 
    for domain in domains: 
     sel.open(domain) 
     sel.delete_all_visible_cookies() 
    sel.open(temp) 

更多信息請參見this blog post

+0

這對我很有用。謝謝! – gorbysbm