Как закрыть все окна, которые открывает Selenium?

Сейчас я использую Selenium RC для тестирования. И драйвер, который я использую, - это питон.

Но теперь я столкнулся с проблемой, а именно: каждый раз, когда Selenium RC запускается и открывает URL-адрес, он открывает 2 окна, одно предназначено для ведения журнала, а другое - для отображения содержимого HTML. Но я не могу закрыть их все в сценарии.

Вот мой сценарий:

#!/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 (), но все они не работают.


person davidx    schedule 05.08.2010    source источник
comment
есть ли ошибки в Selenium RC?   -  person AutomatedTester    schedule 05.08.2010
comment
только это выглядит как ошибка: 17: 07: 47.894 WARN - Внимание: '/ usr / bin / firefox-bin': файл - это файл сценария, а не реальный исполняемый файл. Среда браузера больше не полностью находится под контролем RC   -  person davidx    schedule 05.08.2010


Ответы (3)


У меня был аналогичный случай, когда моя программа открывала много окон при очистке веб-страницы. вот пример кода:

#!/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 ()» - завершить весь процесс и закрыть все окна.

person zwon    schedule 24.02.2016

Я исправил эту проблему. Это происходит потому, что я установил firefox-bin, а не firefox. Теперь я удалил firefox-bin и установил firefox, теперь он работает. stop () закроет все окна, открытые селеном.

Спасибо за напоминания AutomatedTester

person davidx    schedule 05.08.2010

Я могу предложить сделать системную команду с python, чтобы закрыть окна firefox

Bussiere

person Bussiere    schedule 05.08.2010