我正在编写一套自动化测试框架,并已经编写了大量代码。然而,我遇到了一个错误,似乎无法修复或找到解决方法。
问题发生在selenium尝试回答日期问题并从日期下拉菜单中进行选择时。我已经做过很多次而没有问题,但出现了标题中显示的错误。在尝试在Google上寻找解决方案后,我决定来这里求助,因为似乎没有相似的解决方案。
我的自动化测试代码停止工作的位置是:
错误发生在使用
问题发生在selenium尝试回答日期问题并从日期下拉菜单中进行选择时。我已经做过很多次而没有问题,但出现了标题中显示的错误。在尝试在Google上寻找解决方案后,我决定来这里求助,因为似乎没有相似的解决方案。
我的自动化测试代码停止工作的位置是:
new Select(driver.findElement(By.id("AMOUNT_OF_DHP_DATE_FROM_d"))).selectByVisibleText("4th");
new Select(driver.findElement(By.id("AMOUNT_OF_DHP_DATE_FROM_m"))).selectByIndex(4);
driver.findElement(By.id("AMOUNT_OF_DHP_DATE_FROM_y")).sendKeys("2017");
driver.findElement(By.id("AMOUNT_OF_DHP_WEEKLY")).sendKeys("50");
new Select(driver.findElement(By.id("AMOUNT_OF_DHP_DATE_TO_d"))).getFirstSelectedOption();
new Select(driver.findElement(By.id("AMOUNT_OF_DHP_DATE_TO_m"))).getFirstSelectedOption();
driver.findElement(By.id("AMOUNT_OF_DHP_DATE_TO_y")).sendKeys("2017");
clickNext();
错误发生在使用
selectByVisibleText
和 selectByIndex
方法的行上。我以前已经用过这些方法数百次,没有任何问题。当我在Selenium IDE中在浏览器中运行测试时,它可以正常执行。但是一旦代码转移到Eclipse中,它就无法工作。
我唯一可能想到的是将项目从JUnit转换为TestNG.. 这会有什么影响吗?尽管如此,我以前也这样做过,没有任何问题。
非常感谢您的帮助!
编辑
堆栈跟踪:
java.lang.NoSuchMethodError: org.openqa.selenium.WebElement.setSelected()V 在org.openqa.selenium.support.ui.Select.selectByVisibleText(Select.java:111)处发生错误 在tns_automation.DHP_Forms.DhpAbstractTest.answerAmountOfDHPQuestion(DhpAbstractTest.java:348)中 在tns_automation.DHP.KnowsleyDHPTest.completeAssessmentFormAndBudgetToolBeforeDownloadingPDFFromInTrayWithCookiesEnabled(KnowsleyDHPTest.java:62)中完成评估表和预算工具下载PDF之前启用Cookie 在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)处 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)处 在java.lang.reflect.Method.invoke(Method.java:498)处 在org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)处调用方法 在org.testng.internal.Invoker.invokeMethod(Invoker.java:661)处 在org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)处 在org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)处 在org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)处 在org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)处 在org.testng.TestRunner.privateRun(TestRunner.java:744)处 在org.testng.TestRunner.run(TestRunner.java:602)处 在org.testng.SuiteRunner.runTest(SuiteRunner.java:380)处 在org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)处 在org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)处 在org.testng.SuiteRunner.run(SuiteRunner.java:289)处 在org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)处 在org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)处 在org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)处 在org.testng.TestNG.runSuitesLocally(TestNG.java:1226)处 在org.testng.TestNG.runSuites(TestNG.java:1144)处 在org.testng.TestNG.run(TestNG.java:1115)处 在org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)处 在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152)处 在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57)处