

Exception dans le fil de discussion « JavaFX Application Thread » java.lang.NoClassDefFoundError : org/openqa/selenium/WebDriver
php小编新一带来的Java问答:在开发JavaFX应用程序时,有时会遇到异常java.lang.NoClassDefFoundError,错误提示为org/openqa/selenium/WebDriver。这个异常通常表示缺少WebDriver类的依赖包,需要在项目中添加相应的依赖以解决该问题。接下来我们将详细介绍如何处理这种异常,并提供解决方案,让您顺利解决线程问题。
问题内容
根据我当前的代码,有什么可能导致此异常的线索吗?
运行以下代码时:
main.java
package application; import java.io.ioexception; import javafx.application.application; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.layout.gridpane; public class main extends application { @override public void start(stage primarystage) throws ioexception { button runbutton = new button("run"); runbutton.setonaction(e -> { test test = new test(); }); gridpane gridbox = new gridpane(); gridbox.add(runbutton, 0, 0); scene scene = new scene(gridbox, 380, 150); primarystage.setscene(scene); primarystage.show(); } public static void main(string[] args) { launch(args); } }
测试.java
package application; import org.openqa.selenium.webdriver; import org.openqa.selenium.chrome.chromedriver; public class test { webdriver driver; public static void main(string[] args) { test obj = new test(); obj.setupwebsite(); } public void setupwebsite() { //creates chrome window. driver = new chromedriver(); //sets up window to maximize and go to brink website. driver.manage().window().maximize(); driver.get("https://www.google.com"); } }
我得到的只是以下内容:
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver at application.Main.lambda$0(Main.java:18) at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at [email protected]/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at [email protected]/javafx.event.Event.fireEvent(Event.java:198) at [email protected]/javafx.scene.Node.fireEvent(Node.java:8875) at [email protected]/javafx.scene.control.Button.fire(Button.java:203) at [email protected]/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:207) at [email protected]/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) at [email protected]/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at [email protected]/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at [email protected]/javafx.event.Event.fireEvent(Event.java:198) at [email protected]/javafx.scene.Scene$MouseHandler.process(Scene.java:3984) at [email protected]/javafx.scene.Scene.processMouseEvent(Scene.java:1890) at [email protected]/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2708) at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411) at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450) at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424) at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449) at [email protected]/com.sun.glass.ui.View.handleMouseEvent(View.java:551) at [email protected]/com.sun.glass.ui.View.notifyMouse(View.java:937) at [email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 46 more
我已确认我的所有 jar 文件都位于正确的位置。我可以单独运行 test.java 文件。我有这个代码的更大版本,最初认为这是由于整个代码有问题,但发现即使精简到这个,它仍然会继续。
解决方法
想通了。我必须将所有 JAR 文件添加到运行配置类路径中。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Utilisez Python et WebDriver pour capturer des pages Web et les enregistrer sous forme de fichiers PDF Résumé : Lors du développement et des tests Web, il est souvent nécessaire de capturer des pages Web à des fins d'analyse, d'enregistrement et de création de rapports. Cet article explique comment utiliser Python et WebDriver pour prendre des captures d'écran de pages Web et enregistrer les captures d'écran sous forme de fichiers PDF pour un partage et un archivage faciles. 1. Installez et configurez SeleniumWebDriver : Installez Python : Visitez le site officiel de Python (https :

Extension Python et WebDriver : simulation des opérations de la molette de la souris dans les pages Web Introduction : avec le développement continu de la conception d'interactions Web, la simulation des opérations des utilisateurs est devenue de plus en plus importante dans les tests automatisés. Sur certaines pages Web, l'utilisation de la molette de la souris est devenue l'une des opérations courantes. Cependant, pour les développeurs qui utilisent Python pour écrire des scripts de test automatisés, la simulation des opérations avec la molette de la souris dans WebDriver peut devenir un défi. Cet article présentera une méthode utilisant Python et WebDriv

Utiliser Python et WebDriver pour implémenter l'actualisation automatique des pages Web Introduction : Dans la navigation Web quotidienne, nous rencontrons souvent des scénarios qui nécessitent des actualisations fréquentes des pages Web, comme la surveillance des données en temps réel, l'actualisation automatique des pages dynamiques, etc. L'actualisation manuelle de la page Web fera perdre beaucoup de temps et d'énergie, nous pouvons donc utiliser Python et WebDriver pour implémenter la fonction d'actualisation automatique de la page Web et améliorer notre efficacité de travail. 1. Environnement d'installation et de configuration Avant de commencer, nous devons installer et configurer l'environnement correspondant. Installer Python

Utilisez Python et WebDriver pour remplir automatiquement les codes de vérification sur les pages Web Avec le développement d'Internet, de plus en plus de sites Web ont introduit des mécanismes de code de vérification dans l'enregistrement des utilisateurs, la connexion et d'autres opérations pour améliorer la sécurité et prévenir les attaques automatisées. Cependant, la saisie manuelle du code de vérification est non seulement gênante, mais augmente également la complexité de l'expérience utilisateur. Alors, existe-t-il un moyen de remplir automatiquement le code de vérification ? La réponse est oui. Cet article explique comment utiliser Python et WebDriver pour remplir automatiquement les codes de vérification sur les pages Web. Tout d'abord, je

L'utilisation de Python et WebDriver pour remplir automatiquement les données des formulaires sur les pages Web constitue une partie importante du processus de développement logiciel. L'un d'eux est le remplissage automatique des formulaires Web. Pour les développeurs, remplir manuellement des formulaires est un processus fastidieux et sujet aux erreurs. L'utilisation de Python et WebDriver pour remplir automatiquement les données des tableaux pendant le processus de test automatique peut réduire la duplication manuelle du travail et améliorer l'efficacité des tests. Dans cet article, je vais vous présenter comment utiliser Selenium avec Python

Extensions Python et WebDriver : simuler les clics droits de la souris sur les pages Web Lorsque nous utilisons Python et WebDriver pour des tests automatisés de pages Web, nous devons souvent simuler les comportements de la souris de l'utilisateur, tels que les clics, les glissements et les opérations de menu contextuel. WebDriver fournira certaines fonctions d'action de base de la souris, telles que cliquer, glisser-déposer, etc., mais il ne fournit pas directement de fonction qui simule un clic droit de la souris. Cet article expliquera comment utiliser Python et WebD

Utilisez les extensions Python et WebDriver pour automatiser l'opération de glisser-déposer des pages Web. Dans les applications Web réelles, le glisser-déposer (glisser-déposer) est une opération interactive courante qui peut améliorer l'expérience utilisateur et la commodité. L'automatisation des opérations de glisser-déposer pour les pages Web est une tâche importante et courante pour les testeurs. Cet article explique comment utiliser les extensions Python et WebDriver pour automatiser les opérations de glisser-déposer sur les pages Web. 1. Préparation Avant de commencer, nous devons installer Pyt

Utilisation de Python et WebDriver pour remplir automatiquement les listes déroulantes de province et de ville sur les pages Web Introduction : Dans les formulaires Web, vous rencontrez souvent des listes déroulantes de sélection de province et de ville, et il existe certaines dépendances entre ces listes déroulantes. Remplir manuellement ces listes déroulantes est une tâche fastidieuse et fastidieuse, mais en utilisant Python et WebDriver, nous pouvons remplir automatiquement ces listes déroulantes et améliorer l'efficacité du travail. Cet article explique comment utiliser Python et WebDriver pour remplir automatiquement les listes déroulantes de province et de ville sur les pages Web.