2016-06-10 29 views
5

Pracowałem nad skryptami, które opracowałem w Selenium-Pythonie. Pracowali dobrze. Kiedy zamknąłem okno &, aby ponownie uruchomić test, przeglądarka Firefox, która się otworzyła, ulegnie awarii & mój skrypt nie powiedzie się. To dosłownie zdarzyło się sekundę do następnej. Nie byłem pewien, co zmieniło się, by to spowodować.Selenium-Firefox: Przeglądarka Firefox ulega awarii po uruchomieniu skryptu Selenium

Używam Selenium 2.53 & Firefox 47 na moim komputerze. Od czasu do czasu, gdy spróbuję ponownie uruchomić skrypt, otrzymam ten błąd uruchamiania w Pycharm:

Plik "C: \ Python34 \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_binary.py", wiersz 98, w _wait_until_connectable podniesienie WebDriverException ("Wygląda na to, że przeglądarka wyszła" selenium.common.exceptions.WebDriverException: Wiadomość: Wygląda na to, że przeglądarka zakończyła pracę, zanim mogliśmy się połączyć. Jeśli podałeś plik log_w konstruktorze FirefoxBinary, sprawdź to dla szczegółów .

Normalnie po prostu błąd, kiedy ręcznie zamknąć awarii przeglądarki Firefox, który otwiera. Jakieś pomysły co do tego, co miało miejsce?

Odpowiedz

2

Chciałbym lekko poprawić prev odpowiedź. Praca jest przykładem poniżej:

wstępna:

  1. Pobierz geckodriver.zip od https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver;
  2. Wyodrębnij geckodriver.exe do katalogu, w którym znajduje się ten skrypt.
  3. Run script:

    # -*- coding: utf-8 -*- 
    
    import os 
    from selenium import webdriver 
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
    
    firefox_capabilities = DesiredCapabilities.FIREFOX 
    firefox_capabilities['marionette'] = True 
    gecko = os.path.normpath(os.path.join(os.path.dirname(__file__), 'geckodriver')) 
    browser = webdriver.Firefox(capabilities=firefox_capabilities, executable_path=gecko+'.exe') 
    
    browser.get('http:///www.google.com') 
    browser.close() 
    # browser.quit()