Тестовый скрипт в селене для проверки заголовка веб-страницы - PullRequest
1 голос
/ 07 января 2020

Я написал некоторый код, но он работает только до тех пор, пока не получит заголовок веб-страницы. Когда заголовок проверяется, код дает тест, не пройденный.

Сценарий выглядит следующим образом:

  1. Go для веб-сайта: https://www.google.co.in
  2. Поиск вашего имени: т.е. Первый имя + фамилия
  3. В результате поиска откройте третью ссылку и проверьте заголовок страницы

Код:

package sample;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class search_demo {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.gecko.driver","C:\\Users\\HP\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.navigate().to("http://www.google.com/"); 
        driver.manage().window().maximize();

        // Click on the search text box and send value  
        WebElement element= driver.findElement(By.name("q"));
        element.sendKeys("Nishtha tiwari"); 
        element.submit();

        WebDriverWait wait = new WebDriverWait(driver,20);
        WebElement elem=  wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#rso > div:nth-child(3) > div > div:nth-child(1) > div > div > div.r > a")));
        elem.click(); 

        driver.navigate().to("https://in.linkedin.com/in/nishtha-tiwari-40a95281");
        Thread.sleep(2000);
        String title =driver.getTitle();
        System.out.println("Page title is:" + title);

        String expectedTitle = "LinkedIn: Log In or Sign Up ";


        if (title.equals(expectedTitle))
            System.out.println("Test Passed!");
        else  System.out.println("Test Failed");

        driver.close();
    }

}

1 Ответ

2 голосов
/ 07 января 2020

Когда я посмотрел на ваш код и проверил источник страницы Linked In page, я нашел заголовок с концами   Именно поэтому он всегда терпел неудачу.

enter image description here

Решения :

Таким образом, чтобы избавиться от этого, у вас есть два варианта.

Опция 1: Удалить все   из строки.

String title =driver.getTitle();
title = title.replaceAll("&"+"nbsp;", " "); 
title = title.replaceAll(String.valueOf((char) 160), " ");
System.out.println("Page title is:" + title);

String expectedTitle = "LinkedIn: Log In or Sign Up";

    if (title.trim().equalsIgnoreCase(expectedTitle))
        {
            System.out.println("Test Passed!");
        }
    else  
        {
            System.out.println("Test Failed");
        }

Вариант 2: Вместо этого использовать содержит.

String title =driver.getTitle();
System.out.println("Page title is:" + title);

String expectedTitle = "LinkedIn: Log In or Sign Up";

    if (title.contains(expectedTitle))
        {
            System.out.println("Test Passed!");
        }
    else  
        {
            System.out.println("Test Failed");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...