2010-08-05 5 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

+0

только это выглядит как ошибка: 17: 07: 47.894 WARN - Внимание: '/ usr/bin/firefox-bin': файл - это файл сценария, а не настоящий исполняемый файл. Окружение браузера больше не находится под контролем RC – davidx

ответ

0

я могу предложить сделать системную команду с питоном, чтобы закрыть окна 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()» - это завершение всего процесса и закрытие всех окон.

Смежные вопросы