Selenium RC verifyTrue(selenium.isTextPresent(“string”))

时间:2013-03-05 10:25:39

标签: selenium

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

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

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

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

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

Selenium 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中哪一行测试失败?在Log窗口的Selenium IDE中,它显示该行,命令也用红色标记。在JUnit中,只显示失败跟踪,而不是产生测试错误的行。

  3. 请参阅以下屏幕截图: IDE

    JUnit

    谢谢! 祝你有愉快的一天!

1 个答案:

答案 0 :(得分:0)

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