在页面对象模型(POM)中使用断言的最佳方法?

时间:2013-10-31 10:20:25

标签: selenium-webdriver

我使用以下断言来读取POM中的验证消息,但有时测试用例可能会提供不同的验证消息,这会导致TestCase失败,如果测试用例失败,我希望得到验证消息,以便我可以轻松调试

     // Assert whether Account Created Successfully or Not

    WebElement element = driver.findElement(By.xpath("//html/body/table[2]/tbody/tr/td/form/table/tbody/tr/td/font"));
    String strngAcc = element.getText();
    System.out.println(strngAcc);
    Assert.assertEquals("    Account Information Created Successfully", strngAcc); 

如果验证得到的是“帐户已存在”,则测试用例失败,表明

xpath could not found //html/body/table[2]/tbody/tr/td/form/table/tbody/tr/td/font

我想捕获验证“帐户已存在”。

请为我提供一种方法来选择实际显示的验证

PS:我不想使用Screen Shot Capture方法

2 个答案:

答案 0 :(得分:1)

请不要在html代码中使用过于字面的xpath,因为这样做会使测试变得脆弱并且很容易破坏(例如,如果dom的结构稍有变化)。

听起来像正确验证消息的xpath和“Account Already exists”消息是不同的......在html中元素的结构是什么样的?同样,您的xpath可能过于具体。你能提供更多信息吗?

答案 1 :(得分:0)

你的问题不是断言,事实上WebDriver无法找到它用xpath寻找的元素。

您应该寻找更好的方法来查找您正在寻找的元素,而不是使用此绝对XPath。验证错误中是否有任何元素具有您可以搜索的特定ID?如果您需要更具体的帮助,则必须发布HTML代码段。