使用JUnit5在Eclipse IDE中无法运行Selenium测试,控制台无输出
核心问题:缺少@Test注解
你的test()方法没有添加JUnit测试注解,JUnit框架不会自动执行无注解的方法。根据你导入的@Before/@After(来自JUnit 4的org.junit包),需要给test()方法加上@org.junit.Test注解;如果要改用JUnit 5,需替换所有JUnit 4注解为JUnit 5的org.junit.jupiter.api.BeforeEach/org.junit.jupiter.api.AfterEach/org.junit.jupiter.api.Test,并确保依赖包对应。JUnit依赖不完整
仅导入junit5-api-5.0.0-ALPHA.jar不足以让JUnit 5运行,还需要junit-jupiter-engine包,且Alpha版本不稳定,建议换用5.9.x以上的稳定版。如果坚持用JUnit 4,需导入完整的junit-4.x.x.jar和hamcrest-core.jar(代码里用到了Hamcrest断言)。ChromeDriver兼容性问题
Selenium 4.10.0内置了驱动管理,但要保证Chrome浏览器版本与内置驱动版本兼容。如果驱动启动失败,会导致代码无响应,可手动指定驱动路径:@Before public void setUp() { System.setProperty("webdriver.chrome.driver", "你的chromedriver路径"); driver = new ChromeDriver(); js = (JavascriptExecutor) driver; vars = new HashMap<String, Object>(); }修正后的示例代码(JUnit 4版)
package Test; import org.junit.Before; import org.junit.After; import org.junit.Test; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.core.IsNot.not; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.Dimension; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.JavascriptExecutor; import java.util.HashMap; import java.util.Map; public class MounaTest { private WebDriver driver; private Map<String, Object> vars; JavascriptExecutor js; @Before public void setUp() { // 可选:手动指定驱动路径,替换为实际路径 // System.setProperty("webdriver.chrome.driver", "C:/chromedriver.exe"); driver = new ChromeDriver(); js = (JavascriptExecutor) driver; vars = new HashMap<String, Object>(); } @After public void tearDown() { if (driver != null) { driver.quit(); } } @Test public void test() { System.out.println("MOUNA CAMELIA"); driver.get("https://tinder.com/app/recs"); driver.manage().window().setSize(new Dimension(1552, 840)); driver.findElement(By.cssSelector(".Mx\\(a\\):nth-child(4) path")).click(); // 后续操作代码... } }Eclipse运行检查
直接右键测试类 ->Run As->JUnit Test,避免手动配置Run Configurations出错;检查Run Configurations的Classpath是否包含所有依赖JAR包。
内容的提问来源于stack exchange,提问作者منى

