0
votes

Comment fermer la firefox sans tête après l'exécution du test avec sélénium et python

Je suis suivi Ce tutoriel à Apprenez à utiliser le sélénium et je viens de réussir avec succès le code suivant:

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options

opts = Options()opts.headless=True
assert opts.headless # Operating in headless mode
browser = Firefox(options=opts)browser.get('https://bandcamp.com')
browser.find_element_by_class('playbutton').click()


0 commentaires

4 Réponses :


0
votes

du tutoriel que vous avez partagé:

Tout semble fonctionner. Afin de prévenir invisible sans tête les instances de navigateur d'accumulés sur votre machine, vous fermez le Objet du navigateur avant de quitter votre session Python: P> BlockQuote>

Essayez de procéder à ce qui suit pour voir si vos problèmes sont corrigés: P>

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium import webdriver # you need this to terminate program 

options = Options() 
options.headless = True

driver = webdriver.Firefox(options=options)

driver.get('https://bandcamp.com')

driver.find_element_by_class('playbutton').click()

ch = input('Do you want to quit the program y/n?')
if ch == 'y':
    driver.quit()
    print('The program is terminated')


3 commentaires

Merci! Je suis désolé, j'aurais dû mentionner que j'ai essayé d'exécuter le programme avec cela à la fin de celui-ci à rien - Firefox n'est toujours ouvert / en cours d'exécution.


Dans ce cas, vous avez besoin de pilote pour terminer le programme. Je vais le modifier en conséquence. @Christina


@Christina laissez-moi savoir si le édité ne fonctionne toujours pas



0
votes

Il suffit d'ajouter xxx

Vous pouvez également vérifier la liste de processus (par exemple LSOF dans Ubuntu)


0 commentaires

0
votes

Vous pouvez ajouter ajouter navigateur.close () pour fermer l'onglet Actif et Browser.Quit () Pour clôtrer tous les fenêtres du navigateur et la session / processus du conducteur de la fin. < / p>


0 commentaires

0
votes

ISpective du navigateur basé sur l'interface graphique ou , à la fin de votre exécution de test, vous devez toujours appeler navigateur.Quit () code> qui appelle le point de terminaison / shutdown code> et ensuite le WebDriver instance et le contexte de navigation em> sont détruits complètement fermer toutes les pages / onglets / Windows.

Donc, votre bloc de code efficace sera le suivant: P>

import os
import psutil

PROCNAME = "geckodriver" # or chromedriver or IEDriverServer
for proc in psutil.process_iter():
    # check whether the process name matches
    if proc.name() == PROCNAME:
    proc.kill()


0 commentaires