2010-08-05 7 views
3

Hé les gars, j'utilise Selenium RC pour faire des tests maintenant. Et le pilote que j'utilise est python. Mais maintenant, j'ai fait face à un problème: chaque fois que Selenium RC s'exécute, et ouvre une URL, elle ouvre 2 fenêtres, l'une pour la journalisation et l'autre pour l'affichage du contenu HTML. Mais je ne peux pas les fermer tous dans le script.comment fermer toutes les fenêtres que Selenium ouvre?

voici mon script:

#!/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() 

Il est très facile à comprendre. Ce que je veux vraiment, c'est fermer toutes les fenêtres que le sélénium ouvre. J'ai essayé close() et stop(), mais ils ne fonctionnent pas tous.

+0

Y a-t-il des erreurs dans le sélénium RC? – AutomatedTester

+0

seulement cela ressemble à une erreur: 17: 07: 47.894 AVERTISSEMENT - '/ usr/bin/firefox-bin': fichier est un fichier de script, pas un véritable exécutable. L'environnement du navigateur n'est plus entièrement sous contrôle RC – davidx

Répondre

0

Je peut suggérer de faire une commande de système avec python pour fermer les fenêtres Firefox

Bussiere

1

J'ai résoudre ce problème. Il arrive parce que j'ai installé firefox-bin pas firefox. Maintenant que j'ai retiré firefox-bin et que j'ai installé Firefox, ça marche maintenant. Stop() fermera toutes les fenêtres ouvertes par le sélénium.

Nous vous remercions de votre rappelle AutomatedTester

5

J'ai eu un cas similaire où mon programme a ouvert de nombreuses fenêtres en grattant une page Web. voici un exemple de code:

#!/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() 

Le « driver.close() » me mis sur écoute pendant une semaine que je croyais qu'il allait fermer toutes les fenêtres. "driver.quit()" est de terminer tout le processus et de fermer toutes les fenêtres.

Questions connexes