【发布时间】:2021-11-13 21:49:30
【问题描述】:
package Ecommerce;
import org.omg.CORBA.TIMEOUT;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;
/*This is my Code
* www.github.com/jashangunike
* Author-Jashandeep Singh */
public class TC03 {
static public WebDriver driver = null;
public String baseUrl = "http://live.guru99.com/index.php/";
@Test
public void TestCase3() {
driver.navigate().to(baseUrl);
//Click on mobile link
driver.findElement(By.xpath("//a[@href='http://live.guru99.com/index.php/mobile.html']")).click();
//Click on Add to cart
driver.findElement(By.xpath("//*[@id=\"top\"]/body/div/div/div[2]/div/div[2]/div[1]/div[3]/ul/li[1]/div/div[3]/button/span/span")).click();
// Click on Qty Box
driver.findElement(By.xpath("//*[@id=\"shopping-cart-table\"]/tbody/tr/td[4]/input")).click();
// Clear
driver.findElement(By.xpath("//*[@id=\"shopping-cart-table\"]/tbody/tr/td[4]/input")).clear();
// put 1000 units
driver.findElement(By.xpath("//*[@id=\"shopping-cart-table\"]/tbody/tr/td[4]/input")).sendKeys("1000");
// Click on Update button
driver.findElement(By.xpath("//*[@id=\"shopping-cart-table\"]/tbody/tr/td[4]/button/span/span")).click();
// Verification of error message
String ExpectedMSG = "* The maximum quantity allowed for purchase is 500. ";
String ActualMSG = driver.findElement(By.xpath("//*[@id=\"shopping-cart-table\"]/tbody/tr/td[2]/p")).getText();
System.out.println("Actual message "+ ActualMSG);
try {
assertEquals(ExpectedMSG,ActualMSG);
}
catch (Exception e){
e.printStackTrace();
}
//Verifying message after emptying the cart
driver.findElement(By.id("empty_cart_button")).click();
String noItemsStg = ("You have no items in your shopping cart.");
String noItemsMsg = driver.findElement(By.xpath(".//*[@id='top']/body/div[1]/div/div[2]/div/div/div[2]/p[1]")).getText();
System.out.println("You have no items msg = " + noItemsMsg);
try {
assertEquals(noItemsStg,noItemsMsg);
}
catch(Exception ex) {
ex.printStackTrace();
}
}
@BeforeMethod
public void BeforeMethod() {
System.setProperty("webdriver.chrome.driver" , "H:\\software\\Selenium & Java & Components\\drivers\\chromedriverlat\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
}
@AfterMethod
public void AfterMethod() {
driver.quit();
}
}
我的第二次尝试和捕获语句不起作用。问题出在哪里?即验证空购物车。显示了一个结果,但未显示另一个结果。我已经把显示的加粗了。
调试代码后出现如下错误
*
“C:\Program Files\Java\jdk1.8.0_131\bin\java.exe”-ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.1\lib\idea_rt.jar=53638:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program 文件\JetBrains\IntelliJ IDEA 2018.1.1\lib\idea_rt.jar;C:\Program 文件\JetBrains\IntelliJ IDEA 2018.1.1\plugins\testng\lib\testng-plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program 文件\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Users\jashan\IdeaProjects\SeleniumJava\out\production\SeleniumJava;H:\selenium-server-standalone-3.11.0.jar;C :\Users\jashan.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.0\junit-jupiter-api-5.0.0.jar;C:\Users\jashan.m2\repository\org \apiguardian\apiguardian-api\1.0.0\apiguardian-api-1.0.0.jar;C:\Users\jashan.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar; C:\Users\jashan.m2\repository\org\junit\platform\junit-platform-commons\1.0.0\junit-platform-commons-1.0.0.jar;C:\Program 文件\JetBrains\IntelliJ IDEA 2018.1.1\plugins\testng\lib\testng.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.1\plugins\testng\lib\jcommander.jar" org.testng.RemoteTestNGStarter -usedefaultlisteners false -socket53637 @w@C:\Users\jashan\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\jashan\AppData\Local\Temp\idea_testng.tmp [TestNG] 运行:
C:\Users\jashan.IntelliJIdea2018.1\system\temp-testng-customsuite.xml 启动 ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) 在端口 18144 上仅限本地 允许连接。 2018 年 5 月 10 日 12:46:55 org.openqa.selenium.remote.ProtocolHandshake createSession 信息: 检测到的方言:OSS 实际消息 * 允许的最大数量 购买是 500。 java.lang.AssertionError: expected [* 最大值 允许购买的数量是 500。] 但发现 [* 最大 允许购买的数量为 500。] 预计:* 最大 允许购买数量为 500 个。实际:* 最大数量 允许购买的是 500。 在 org.testng.Assert.fail(Assert.java:94) 在 org.testng.Assert.failNotEquals(Assert.java:494) 在 org.testng.Assert.assertEquals(Assert.java:123) 在 org.testng.Assert.assertEquals(Assert.java:176) 在 org.testng.Assert.assertEquals(Assert.java:186) 在 Ecommerce.TC03.TestCase3(TC03.java:50) 在 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:84) 在 org.testng.internal.Invoker.invokeMethod(Invoker.java:714) 在 org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) 在 org.testng.TestRunner.privateRun(TestRunner.java:767) 在 org.testng.TestRunner.run(TestRunner.java:617) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:348) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:305) 在 org.testng.SuiteRunner.run(SuiteRunner.java:254) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1224) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1149) 在 org.testng.TestNG.run(TestNG.java:1057) 在 org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) 在 org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123) ================================================= 默认套件总计测试运行:1,失败:1,跳过:0 ================================================ 进程完成退出代码 0
*
【问题讨论】:
-
在我看来,您的第一个尝试块导致您的测试失败;为什么说这是你的第二个?
-
第二次尝试 catch 块不起作用
-
第二次尝试 catch 块不起作用
标签: selenium selenium-webdriver selenium-chromedriver