Selenium Assert ошибка приходит в себя Идея - PullRequest
0 голосов
/ 09 мая 2018
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();
    }
}

Мой второй оператор Try and catch не работает.В чем проблема?т.е. проверка пустой корзины.Один результат отображается, но другой не отображается.я уже выделил жирным шрифтом отображаемый.

Ошибки появляются ниже после отладки кода

*

"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 Files \ JetBrains \ IntelliJ IDEA 2018.1.1 \ lib \ idea_rt.jar; C: \ Program Files \ 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 Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ access-bridge-64.jar; C: \ Program Files \Java \ jdk1.8.0_131 \ jre \ lib \ ext \ cldrdata.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ dnsns.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ jaccess.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ jfxrt.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \jre \ lib \ ext \ localedata.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ nashorn.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ext \ sunec.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ sunjce_provider.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ sunmscapi.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ sunpkcs11.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ ext \ zipfs.jar; C:\ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ javaws.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ jce.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ jfr.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ jfxswt.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ jsse.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ management-agent.jar; C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ lib \ plugin.jar; C: \Программные файлы \ 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 \из \ производство \ SeleniumJava, H: \ селен-сервера автономного-3.11.0.jar; C: \ Users \ жашan.m2 \ репозиторий \ орг \ JUnit \ юпитер \ JUnit-юпитер-апи \ 5.0.0 \ JUnit-юпитер-апи-5.0.0.jar; C: \ Users \ jashan.m2 \ репозиторий \ орг \ apiguardian \ apiguardian-api \ 1.0.0 \ apiguardian-апи-1.0.0.jar; C: \ Users \ jashan.m2 \ репозиторий \ орг \ 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 Files \ 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 Разрешены только локальные подключения.10 мая 2018 г., 12:46:55. Org.openqa.selenium.remote.ProtocolHandshake createSession INFO: обнаруженный диалект: OSS Фактическое сообщение * Максимальное допустимое количество для покупки составляет 500.Максимальное количество, разрешенное для покупки, составляет 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 (собственный метод) в 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

*

1 Ответ

0 голосов
/ 10 мая 2018

Ваш тест вел себя так, как должен был; Поскольку в одном и том же тесте было несколько утверждений, тест не прошел и прекратил выполнение при сбое первого утверждения.

Возможно, вы захотите использовать SoftAsserts в своих тестах, если ваши тесты включают в себя несколько утверждений и вы хотите, чтобы все утверждения были оценены. например,

SoftAssert softAssert = new SoftAssert();

softAssert.assertTrue(false);
softAssert.assertEquals("a", "b");

softAssert.assertAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...