我对 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();
}
}
现在的问题:
添加 checkForVerificationErrors() 有什么好处?在每个 (verifyTrue(selenium.isTextPresent())) 之后;行还是可以像上面的代码一样在测试结束时添加?
我怎么知道在 Selenium RC/JUnit 的哪一行测试失败了?在 Selenium IDE 的 Log 窗口中,它显示该行,该命令也标记为红色。在 JUnit 中只显示一个失败跟踪,而不是产生测试错误的行。
请参阅以下屏幕截图:
谢谢!祝你今天过得愉快!