为什么我不断收到“java.lang.IllegalArgumentException”错误?

问题描述 投票:0回答:0

我有这个 Selenium webdriver 代码,可以自动执行亚马逊网站上的搜索功能。

public class Search extends edgeBrowser {
@Test
public void ValidSearch() throws InterruptedException {
        HomePage home = new HomePage();
        home.OpenHomePage();
        home.SearchFor("iphone");
        Thread.sleep(3000);
        home.NotificationCheck();
}

}

public void OpenHomePage() throws InterruptedException {
    driver.get("https://www.amazon.com/");
    Thread.sleep(3000);
}
public void SearchFor(String input){
    wait.until(ExpectedConditions.presenceOfElementLocated(search));
    WebElement Search = driver.findElement(search);
    Search.sendKeys(input);
    Search.submit();
}

但是当我尝试执行它时,它给了我这个问题。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

SLF4J:默认为无操作(NOP)记录器实现 SLF4J:有关详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder。 错误 StatusLogger Log4j2 找不到日志记录实现。请将 log4j-core 添加到类路径中。使用 SimpleLogger 登录到控制台... 在端口 22462 上启动 Microsoft Edge WebDriver 112.0.1722.34 (649b7446f96f116d8dc7d1c2d92d06583649e244) 要提交反馈、报告错误或建议新功能,请访问 https://github.com/MicrosoftEdge/EdgeWebDriver

只允许本地连接。 请参阅 https://aka.ms/WebDriverSecurity 以获取有关保持 Microsoft Edge WebDriver 安全的建议。

Microsoft Edge WebDriver 已成功启动。 2023 年 4 月 11 日晚上 10:51:07 org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch 警告:无法找到与 CDP 版本 112 完全匹配的版本,因此返回找到的最接近的版本:111

java.lang.IllegalArgumentException:必须设置输入

at org.openqa.selenium.internal.Require.nonNull(Require.java:59)
at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:97)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:77)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:46)
at Pages.HomePage.<init>(HomePage.java:15)
at TestCases.Search.ValidSearch(Search.java:12)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:829)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
at org.testng.TestNG.runSuites(TestNG.java:1099)
at org.testng.TestNG.run(TestNG.java:1067)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)

我尝试使用 try and catch,但无法解决问题。

java selenium-webdriver testing automated-tests testng
© www.soinside.com 2019 - 2024. All rights reserved.