Утверждение в Селене - TestNG - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь проверить, используя утверждение, совпадает ли выделенное значение на изображении со значением, которое я дал:

snap

Ниже приведен код:

WebDriverWait wait = new WebDriverWait(driver, 60);
WebElement element1 = wait
    .until(ExpectedConditions.visibilityOfElementLocated(By
        .xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]")));
String element = driver
    .findElement(
        By.xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]"))
    .getText();

Assert.assertEquals("10:45", element);

Но я получаю сообщение об ошибке ниже:

Exception in thread "main" java.lang.AssertionError: expected [11:21 AM  to  Clock-out
In Progress] but found [10:45]
    at org.testng.Assert.fail(Assert.java:96)
    at org.testng.Assert.failNotEquals(Assert.java:776)
    at org.testng.Assert.assertEqualsImpl(Assert.java:137)
    at org.testng.Assert.assertEquals(Assert.java:118)
    at org.testng.Assert.assertEquals(Assert.java:453)
    at org.testng.Assert.assertEquals(Assert.java:463)
    at pulse.tpr.LoginInterface.rightNowToClockout(LoginInterface.java:172)
    at pulse.tpr.LoginInterface.main(LoginInterface.java:182)

Я новичок в Selenium и Java, поэтому любая помощь будет полезна.

Ответы [ 3 ]

1 голос
/ 06 марта 2019

В вашем коде

driver.findElement(By.xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]")).getText();

верните значение 11: 21 AM для истечения времени ожидания , и вы проверяете, равно ли оно 10: 45 .Очевидно, что это не удастся.Даже у скриншота, который вы прикрепили, есть 11: 45 до времени отключения .

Если это должно пройти, и вы должны проверить время.Тогда это, вероятно, должно быть что-то похожее на приведенное ниже:

WebDriverWait wait = new WebDriverWait(driver, 60);
WebElement element1 = wait
    .until(ExpectedConditions.visibilityOfElementLocated(By
        .xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]")));
String element = driver
    .findElement(
        By.xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]"))
    .getText();

Assert.assertTrue(element.conatins("11:21"));

Здесь мы проверяем, содержит ли 11: 21 AM истечение времени ожидания содержит текст 11: 21 так пройдет.Если вам нужно 10: 45 и его отображение 11: 21 , то это, вероятно, допустимый сбой.

1 голос
/ 06 марта 2019

Попробуйте использовать Assert.assertTrue с contains.

Assert.assertTrue(element.contains("10:45"));

. Таким образом, будет проверяться, есть ли в тексте "10:45" текстовая строка элемента.

0 голосов
/ 06 марта 2019

Эта проблема решена.Но мой вывод TestNG показывает ошибку NullPointer: enter image description here

package pulse.tpr;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.annotations.Test;

public class LoginInterface {

    public WebDriver driver;
    public Actions actions;

    public void launchApplication() {

        System.setProperty("webdriver.chrome.driver",
                "C:\\MyChromeDriver\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("mysite");
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
        actions = new Actions(driver);

    }

    public void closeApplication() {
        driver.close();
    }

    public void adminLogin() {

        actions.moveToElement(driver.findElement(By.name("userId")));
        actions.click();
        actions.sendKeys("sysadmin");
        actions.build().perform();

        actions.pause(java.time.Duration.ofSeconds(1));

        actions.moveToElement(driver.findElement(By.name("password")));
        actions.click();
        actions.sendKeys("MMNext13#");
        actions.build().perform();

        actions.pause(java.time.Duration.ofSeconds(1));

        actions.moveToElement(driver.findElement(By.name("dcNumber")));
        actions.click();
        actions.sendKeys("7036");
        actions.build().perform();
    }

    public void tprPage() {

        actions.moveToElement(driver.findElement(By
                .cssSelector("body > ion-app > ng-component > ion-nav > page-login > ion-content > div.scroll-content > ion-card > ion-grid > form > ion-list > div.login-button > button > span")));
        actions.click();
        actions.build().perform();

        actions.moveToElement(driver.findElement(By.id("tab-t0-2")));
        actions.click();
        actions.build().perform();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    }

    public void createMove() {
        actions.moveToElement(driver.findElement(By
                .className("send-associates-button")));
        actions.click();
        actions.build().perform();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        actions.moveToElement(driver.findElement(By
                .cssSelector("#tabpanel-t0-2 > send-associate-page > ion-content > div.scroll-content > div > ion-list > ion-item:nth-child(4)")));
        actions.click();
        actions.build().perform();

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='footers']/ion-toolbar/div[2]/ion-row/ion-col[2]/button")));
        actions.click();
        actions.build().perform();

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-col[2]")));
        actions.click();
        actions.build().perform();

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-col[2]/ion-row[2]")));
        actions.click();
        actions.build().perform();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        // Select to area

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-col[2]")));
        actions.click();
        actions.build().perform();

        // Select to area

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-col[2]/ion-row[2]")));
        actions.click();
        actions.build().perform();

        // Next button in to area page

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-footer/button")));
        actions.click();
        actions.build().perform();
    }

    @Test
    public void rightNowToClockout() {

        // Right Now Time

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-row[4]")));
        actions.click();
        actions.build().perform();

        // Next Button

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-footer/button")));
        actions.click();
        actions.build().perform();

        // Clockout time

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-content/div[2]/div/div/ion-row[2]/ion-col")));
        actions.click();
        actions.build().perform();

        // Next button

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-footer/button")));
        actions.click();
        actions.build().perform();

        // Send Button

        actions.moveToElement(driver.findElement(By
                .xpath("//*[@id='tabpanel-t0-2']/tpr-send-associates-page/ion-footer/ion-row/ion-row")));
        actions.click();
        actions.build().perform();

        WebDriverWait wait = new WebDriverWait(driver, 60);
        WebElement element1 = wait
                .until(ExpectedConditions.visibilityOfElementLocated(By
                        .xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div/ion-card/ion-row[1]/ion-col/ion-row[2]")));
        String element = driver
                .findElement(
                        By.xpath("//*[@id='tabpanel-t0-2']/tpr-summary-page/ion-content/div[2]/div/div[2]/div[1]/ion-card/ion-row[1]/ion-col/ion-row[2]/div[1]/label[1]"))
                .getText();
        Assert.assertTrue(element.contains("1:35"));
    }

    public static void main(String[] args) {

        LoginInterface obj = new LoginInterface();
        obj.launchApplication();
        obj.adminLogin();
        obj.tprPage();
        obj.createMove();
        obj.rightNowToClockout();

    }

}

Это мой фрагмент кода.

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