我已经编写了一些代码,但是只有在获得网页标题之前,它才有效。标题验证后,代码无法通过测试。
方案如下:
代码是:
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();
}
}
[当我查看您的代码并检查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");
}