1
votes

Le programme Selenium ne s'arrête pas de fonctionner

Je développe en VSCode avec le Java Extension Pack (qui inclut Maven).

Pour une raison quelconque, mon programme (ci-dessous) ne se termine pas après l'exécution.

import java.util.Scanner;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

Scanner in = new Scanner(System.in);
System.setProperty("webdriver.chrome.driver", "Path to exe\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.quit();

System.out.println("Press enter to quit");
in.nextLine();
in.close();

L'onglet chrome Selenium s'ouvre pendant un moment puis se ferme (comme je m'y attendais). Le programme m'invite alors à "appuyer sur Entrée", ce que je fais, mais le programme ne s'arrête pas après cela. Cela ne se termine que si j'appuie sur Ctrl-c (à quel point il me demande si je veux terminer le travail par lots).

Si je commente le contenu de Selenium, cela fonctionne bien - le programme se termine après que j'appuie sur entrée. Voici une image du journal:

 entrez la description de l'image ici

Pensez-vous que la partie concernant l'erreur de journal pourrait en être la cause? Cette partie n'est pas là quand je commente les trucs de Selenium. De plus, j'espère que cela ne vous dérange pas, j'ai censuré certaines informations personnelles.

Veuillez me faire savoir si je peux faire quelque chose pour faciliter la réponse à cette question.

Mise à jour: J'ai résolu le problème du journal en incluant la dépendance slf4j-jdk14 mais cela n'a eu aucun impact - le programme ne s'est toujours pas arrêté. La seule différence maintenant est que le journal ne contient plus les lignes commençant par "SLF4J"


0 commentaires

3 Réponses :


2
votes

J'ai exactement le même problème et j'étudie toujours le problème. Cependant, j'ai résolu le problème en rétrogradant la dépendance Selenium-Java Maven de la version 4.0.0-alpha-6 à la version 3.141.59. Mon application se ferme comme prévu après la rétrogradation.

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>

Je mettrai à jour ma réponse au fur et à mesure que j'en saurai plus.


0 commentaires

0
votes

Cela ressemble plus à une solution de contournement qu'à une réponse, mais si vous ajoutez System.exit (0); à la fin du programme, il se termine (comme vous vous en doutez). Je ne sais pas pourquoi le code Selenium oblige à quitter explicitement.


2 commentaires

Cela ne devrait pas être nécessaire. Quelle version de Selenium utilisez-vous? En rétrogradant à la dernière version stable, comme je l'ai suggéré ci-dessous, mon application se ferme normalement sans ajouter de sortie système explicite.


J'utilise 4.0.0-alpha-6. Je vais essayer de rétrograder



0
votes

Merci @dma d'avoir rétrogradé à 3.141.59 - fait l'affaire et maintenant mon programme se termine

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>3.141.59</version>
</dependency>


0 commentaires