【问题标题】:How to verify a page title using WebDriver and page object?如何使用 WebDriver 和页面对象验证页面标题?
【发布时间】:2016-04-02 03:39:10
【问题描述】:

我正在尝试编写一种方法来使用页面对象验证页面标题,但我无法做到。你能帮我写一个方法来在谷歌页面搜索后验证页面标题吗?

这是我的 2 节课。

1 类

public class GoogleSearchPage {

protected  WebDriver driver;


@FindBy(name="q")
private WebElement SearchBox;

@FindBy(name="btnG")
private WebElement SearchButton;    


public void SearchFor(String SearchTerm)
{
    SearchBox.sendKeys(SearchTerm);
    SearchButton.click();
}   

}

类2

 public class TestSearchResults {
WebDriver driver;
GoogleSearchPage page;

@BeforeClass
public void Launch() throws Exception
{
    driver = new FirefoxDriver();
    driver.get("http://google.com");
}

@AfterClass
public void Close()
{
    driver.quit();
}

@Test
public void ResultPage() {
    System.out.println(page);
    page=PageFactory.initElements(driver, GoogleSearchPage.class);
    page.SearchFor("selenium");

}

}

请您帮忙在显示搜索结果后如何验证标题

注意:我正在使用 TestNG。

提前致谢, 湿婆奥莱蒂。

【问题讨论】:

    标签: java selenium-webdriver testng pageobjects


    【解决方案1】:

    试试这个:

    assertEquals("Your Page Title" , driver.getTitle());
    

    driver.getTitle() - 返回您当前页面的Title

    【讨论】:

    • 如果我错了,请原谅我,但这个答案并没有告诉我们如何使用 PageObject 模式来解决这个问题,这是问题的核心部分。
    【解决方案2】:

    您可以使用 python webdriver 获取和验证页面标题。见以下代码

    driver.title('title name')
    assert 'title name' in driver.title('title name')
    

    它将验证标题名称。如果存在标题名称测试用例,则通过断言错误。

    【讨论】:

      【解决方案3】:

      在每个页面对象中创建一个构造函数。构造函数:

      • 设置实例驱动值
      • 等待页面加载完成(例如,加载微调器不可见、jQuery.active == 0、document.readyState == 'complete')
      • 验证页面标题(查看其他答案)
      • 发出 PageFactory.initElement(driver, this);

      因此,您不需要单独的方法来验证标题。在每个步骤中,您将有一个新的 YourPageObjectPage() 自动检查标题。想想干。

      【讨论】:

      • 老问题,但我认为访问者会喜欢另一种选择。
      猜你喜欢
      • 2016-06-25
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      相关资源
      最近更新 更多