2010-08-05 61 views
3

嘿,我正在使用Selenium RC來做一些測試。我使用的驅動程序是python。 但現在我面臨一個問題,那就是:每次Selenium RC運行並打開一個url時,它會打開2個窗口,一個用於日誌記錄,另一個用於顯示HTML內容。但我無法用腳本將它們全部關閉。如何關閉Selenium打開的所有窗口?

這裏是我的腳本:

#!/usr/bin/env python 
#-*-coding:utf-8-*- 
from selenium import selenium 

def main(): 
    sel = selenium('localhost', 4444, '*firefox', 'http://www.sina.com.cn/') 
    sel.start() 
    try: 
     sel.open('http://www.sina.com.cn/') 
    except Exception, e: 
     print e 
    else: 
     print sel.get_title() 
    sel.close() 
    sel.stop() 

if __name__ == '__main__': 
    main() 

這是很容易理解的。我真正想要的是關閉硒打開的所有窗口。我試過close()和stop(),但它們都不起作用。

+0

Selenium RC中是否有錯誤? – AutomatedTester 2010-08-05 09:06:49

+0

只有這看起來像一個錯誤: 17:07:47.894警告 - 小心:'/ usr/bin/firefox-bin':文件是一個腳本文件,而不是一個真正的可執行文件。瀏覽器環境不再完全處於RC控制之下 – davidx 2010-08-05 09:08:56

回答

0

我建議做一個系統命令與Python,關閉Firefox窗口

BUSSIERE

1

我已經解決這個問題。 這是因爲我安裝了firefox-bin而不是firefox。 現在我已經刪除了firefox-bin並安裝了firefox,它現在可以工作。 stop()將關閉硒打開的所有窗口。

謝謝您的提醒AutomatedTester

5

我曾在那裏刮網頁時,我的程序打開多個窗口類似的情況。這裏是一個示例代碼:

#!/usr/bin/python 
import webbrowser 
from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.common.exceptions import NoSuchElementException 

driver = webdriver.Firefox() 
print "Browser fired-up!" 
driver.get("https://www.something.com/") 
driver.implicitly_wait(5) 

while True: 

    try: 
     playlink = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/a") 
     playlink.click() 
     time.sleep(3) 
    except NoSuchElementException: 
     print "playlink Element not found " 
    else: 
     backbutton = driver.find_element_by_id("back-to-bing-text") 
     backbutton.click() 

    try: 
     quizlink = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[1]/ul/li[1]/a/span/span[1]") 
     quizlink.click() 
    except NoSuchElementException: 
     print "quiz1 Element not found " 
    else: 
     print "quiz1 clicked" 

    driver.quit() 

的「driver.close()」竊聽我一個星期,因爲我相信它會關閉所有的窗口。 「driver.quit()」將終止所有進程並關閉所有窗口。

相關問題