【问题标题】:Test script in selenium to verify a webpage titleselenium 中的测试脚本以验证网页标题
【发布时间】:2020-04-25 03:15:43
【问题描述】:

我已经编写了一些代码,但它只能在获得网页标题之前工作。 当标题正在验证代码时,测试失败。

场景如下:

  1. 访问网站: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();
    }

}

【问题讨论】:

  • 您得到的输出/异常是什么?
  • 你说“测试失败”是什么意思。更新您的问题以更具体。很难理解你在问什么。

标签: java html selenium testing


【解决方案1】:

当我查看您的代码并检查 Linked In page 的页面源时,我发现标题以   结尾,这就是它总是失败的原因。

解决方案

所以要摆脱它,你有两个选择。

选项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");
        }

【讨论】:

  • 非常感谢...使用选项 1 后,我得到了测试通过的输出...!!!
  • 很高兴为您提供帮助。一旦您获得 15 岁以上的声誉,请为答案投票。
猜你喜欢
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 2016-06-25
  • 2017-12-31
  • 1970-01-01
  • 2018-06-24
  • 2021-06-12
  • 1970-01-01
相关资源
最近更新 更多