

Pengecualian dalam utas 'Benang Aplikasi JavaFX' 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 文件添加到运行配置类路径中。
Atas ialah kandungan terperinci Pengecualian dalam utas 'Benang Aplikasi JavaFX' java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Gunakan Python dan WebDriver untuk tangkapan skrin halaman web dan simpannya sebagai fail PDF Ringkasan: Semasa pembangunan dan ujian web, selalunya perlu untuk tangkapan skrin halaman web untuk analisis, rakaman dan pelaporan. Artikel ini akan memperkenalkan cara menggunakan Python dan WebDriver untuk mengambil tangkapan skrin halaman web dan menyimpan tangkapan skrin sebagai fail PDF untuk perkongsian dan pengarkiban yang mudah. 1. Pasang dan konfigurasikan SeleniumWebDriver: Pasang Python: Lawati tapak web rasmi Python (https:

Sambungan Python dan WebDriver: Mensimulasikan operasi roda tetikus dalam halaman web Pengenalan: Dengan pembangunan berterusan reka bentuk interaksi web, simulasi operasi pengguna telah menjadi semakin penting dalam ujian automatik. Pada sesetengah halaman web, penggunaan roda tetikus telah menjadi salah satu operasi biasa. Walau bagaimanapun, bagi pembangun yang menggunakan Python untuk menulis skrip ujian automatik, cara mensimulasikan operasi roda tetikus dalam WebDriver boleh menjadi satu cabaran. Artikel ini akan memperkenalkan kaedah menggunakan Python dan WebDriv

Gunakan Python dan WebDriver untuk mengisi kod pengesahan secara automatik pada halaman web Dengan perkembangan Internet, semakin banyak tapak web telah memperkenalkan mekanisme kod pengesahan dalam pendaftaran pengguna, log masuk dan operasi lain untuk meningkatkan keselamatan dan mencegah serangan automatik. Walau bagaimanapun, memasukkan kod pengesahan secara manual bukan sahaja menyusahkan, tetapi juga meningkatkan kerumitan pengalaman pengguna. Jadi, adakah cara untuk mengisi kod pengesahan secara automatik? Jawapannya ya. Artikel ini akan memperkenalkan cara menggunakan Python dan WebDriver untuk mengisi kod pengesahan pada halaman web secara automatik. Pertama sekali, saya

Menggunakan Python dan WebDriver untuk melaksanakan penyegaran halaman web automatik Pengenalan: Dalam penyemakan imbas web harian, kami sering menghadapi senario yang memerlukan penyegaran halaman web yang kerap, seperti memantau data masa nyata, menyegarkan halaman dinamik secara automatik, dsb. Muat semula halaman web secara manual akan membuang banyak masa dan tenaga, jadi kami boleh menggunakan Python dan WebDriver untuk melaksanakan fungsi menyegarkan halaman web secara automatik dan meningkatkan kecekapan kerja kami. 1. Persekitaran pemasangan dan konfigurasi Sebelum bermula, kita perlu memasang dan mengkonfigurasi persekitaran yang sepadan. Pasang Python

Sambungan Python dan WebDriver: Simulasikan klik tetikus klik kanan pada halaman web Apabila menggunakan Python dan WebDriver untuk ujian halaman web automatik, kita selalunya perlu mensimulasikan gelagat tetikus pengguna, seperti klik, seret dan operasi menu klik kanan. WebDriver akan menyediakan beberapa fungsi tindakan tetikus asas, seperti klik, drag_and_drop, dsb., tetapi ia tidak secara langsung menyediakan fungsi untuk mensimulasikan klik kanan tetikus. Artikel ini akan memperkenalkan cara menggunakan Python dan WebD

Menggunakan Python dan WebDriver untuk mengisi data borang secara automatik pada halaman web adalah bahagian penting dalam proses pembangunan perisian Salah satu daripadanya ialah pengisian borang web secara automatik. Bagi pembangun, mengisi borang secara manual adalah proses yang membosankan dan terdedah kepada ralat. Menggunakan Python dan WebDriver untuk mengisi data jadual secara automatik semasa proses ujian automatik boleh mengurangkan pertindihan kerja secara manual dan meningkatkan kecekapan ujian. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Selenium dengan Python

Gunakan sambungan Python dan WebDriver untuk mengautomasikan operasi drag-and-drop halaman web Dalam aplikasi web sebenar, drag-and-drop (Seret dan Lepas) ialah operasi interaktif biasa, yang boleh meningkatkan pengalaman dan kemudahan pengguna. Mengautomasikan operasi drag-and-drop untuk halaman web ialah tugas penting dan biasa untuk penguji. Artikel ini akan memperkenalkan cara menggunakan sambungan Python dan WebDriver untuk mengautomasikan operasi drag-and-drop pada halaman web. 1. Persediaan Sebelum bermula, kita perlu memasang Pyt

Menggunakan Python dan WebDriver untuk melaksanakan fungsi pengisian automatik borang Dalam penyemakan imbas laman web harian, kita sering menghadapi situasi di mana kita perlu mengisi borang. Apabila kita perlu mengisi borang yang sama atau serupa dengan kerap, pengisian manual menjadi membosankan dan memakan masa. Nasib baik, kami boleh menggunakan Python dan WebDriver untuk merealisasikan fungsi mengisi borang secara automatik dan meningkatkan kecekapan kerja kami. Pertama, kita perlu memasang perpustakaan selenium. Selenium ialah alat ujian automatik yang boleh mensimulasikan