Java 在selenium中测试脚本以验证网页标题

Java 在selenium中测试脚本以验证网页标题,java,html,selenium,testing,Java,Html,Selenium,Testing,我已经写了一些代码,但它只工作,直到它得到网页标题。 当标题验证代码时,测试失败 情况如下: 请访问以下网站: 搜索您的姓名:即名字+姓氏 从搜索结果中打开第三个链接并验证页面标题 代码是: package sample; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.We

我已经写了一些代码,但它只工作,直到它得到网页标题。 当标题验证代码时,测试失败

情况如下:

  • 请访问以下网站:
  • 搜索您的姓名:即名字+姓氏
  • 从搜索结果中打开第三个链接并验证页面标题
  • 代码是:

    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:从字符串中删除所有

    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:改用contains

    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,请立即投票。