如何在一个页面上获取文本然后将其用于另一个页面上的assertEquals?

时间:2013-02-25 12:29:56

标签: java selenium junit selenium-webdriver

我有一个包含一些数据的表:

| _ 名称 _ | ___ 电子邮件 _ __ _ _ |

|网站| website@test.com |

点击名称网站后,会显示网站的设置页面。在顶部,有一个带有“网站”名称的标题。

我需要JUnit的解决方案来验证在点击表格中的“网站”名称之后,用户被重定向到“网站”设置页面。

我尝试了以下方式,但没有帮助:

String firstNameInTheTable = driver.findElement(By.xpath(TestPage.FIRST_NAME_IN_THE_TABLE)).getText();
driver.findElement(By.xpath(TestPage.FIRST_NAME_IN_THE_TABLE)).click();
assertEquals(firstNameInTheTable, WebsitePage.WEBSITE_TITLE_TEXT);

实际上最好验证第一列中的文本(在我们的例子中为“name”)与设置页面上的文本相同。因此,我们可能没有网站文字而是另一个名称。测试仍然应该通过。

2 个答案:

答案 0 :(得分:1)

1.选择并获取网站名称。

WebElement element = driver.findElement(By.xpath("//xpath"))
String name = element.getText();
element.click();

2.等待加载,选择标题和assertEquals。

sleep(3);
String title = driver.findElement(By.xpath("//xpath")).getText();
Assert.assertTrue(name.equals(title));

/!\如果第二步是打开一个新窗口,请查看教程here(放在sleep(3);String title ...之间。

其他:

睡眠方法

protected void sleep(int i) {
    driver.manage().timeouts().implicitlyWait(i, TimeUnit.SECONDS);
}

答案 1 :(得分:0)

这是一个例子,您可以参考它并相应地创建您的TC

    WebDriver driver = new FirefoxDriver();
    driver.get("https://www.google.co.in/");

    String linkTitle = driver.findElement(By.xpath("//a[@href='/intl/en/about.html']")).getText();
    driver.findElement(By.xpath("//a[@href='/intl/en/about.html']")).click();
    System.out.println(driver.findElement(By.xpath("//div[@id='corp-crumb']/ol/li")).getText());
    Assert.assertTrue(linkTitle.equals(driver.findElement(By.xpath("//div[@id='corp-crumb']/ol/li")).getText()));