3

我对 Selenium RC -> VerifyTextPresent 有几个问题,例如:(verifyTrue(selenium.isTextPresent()));

从 Selenium IDE 运行测试时,我在页面上的文本中发现拼写错误,但通过 Selenium RC/JUnit 运行测试时没有发现该错误。

我知道我需要将 method: 添加checkForVerificationErrors();到 java 代码中以获得与 IDE 中相同的结果。

例如此代码/行(验证)-> IDE:

<tr>
    <td>verifyTextPresent</td>
    <td>Search results: 1 - 30 of 50</td>
    <td></td>
</tr>

硒 RC/JUnit:verifyTrue(selenium.isTextPresent("Search results: 1 - 30 of 50"));

在我添加checkForVerificationErrors();方法之后,Selenium RC 它作为 IDE 工作。

这是完整的代码:

package com.example.tests;

import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.regex.Pattern;

public class Dice_Search extends SeleneseTestCase {
    private Selenium selenium;

    @Before
    public void setUp() throws Exception {
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.dice.com/");
        selenium.setSpeed("2000");
        selenium.start();
        selenium.windowMaximize();
        selenium.windowFocus();
    }

    @Test
    public void testDice_Search() throws Exception {
        selenium.open("/");
        selenium.type("id=FREE_TEXT", "selenium");
        selenium.type("id=zipCodeCity", "Los Angeles, CA");
        selenium.click("id=searchSubmit");
        selenium.waitForPageToLoad("30000");
        verifyTrue(selenium.isTextPresent("Search results: 1 - 30 of 50"));
        verifyTrue(selenium.isTextPresent("Create Search Agent Matching These Results"));
        verifyTrue(selenium.isTextPresent("selenium"));
        verifyEquals("selenium", selenium.getText("css=div.undoLabel"));
        checkForVerificationErrors();
    }

    @After
    public void tearDown() throws Exception {
        selenium.stop();
    }
}

现在的问题:

  1. 添加 checkForVerificationErrors() 有什么好处?在每个 (verifyTrue(selenium.isTextPresent())) 之后;行还是可以像上面的代码一样在测试结束时添加?

  2. 我怎么知道在 Selenium RC/JUnit 的哪一行测试失败了?在 Selenium IDE 的 Log 窗口中,它显示该行,该命令也标记为红色。在 JUnit 中只显示一个失败跟踪,而不是产生测试错误的行。

请参阅以下屏幕截图: IDE

JUnit

谢谢!祝你今天过得愉快!

4

1 回答 1

0

我对 RC 不是很好,但这是我的想法: 1. 我不明白你为什么要使用 verifyTextPresent - 更好的解决方案是找到你需要的确切元素并检查元素内的文本?(类似于:verifyTrue(element.getText().equals("text"))) 2. 阅读堆栈跟踪信息,如果您使用的是 Eclipse IDE,您可以单击控制台选项卡中的链接

于 2013-08-29T15:08:43.327 回答