我对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();
}
}
现在问题:
添加checkForVerificationErrors()会有多好处;每个之后(verifyTrue(selenium.isTextPresent()));是否可以在测试结束时添加,如上面的代码?
我如何知道Selenium RC / JUnit中哪一行测试失败?在Log窗口的Selenium IDE中,它显示该行,命令也用红色标记。在JUnit中,只显示失败跟踪,而不是产生测试错误的行。
请参阅以下屏幕截图:
谢谢! 祝你有愉快的一天!
答案 0 :(得分:0)
我对RC不是很好,但这就是我的想法: 1.我不明白你为什么使用verifyTextPresent - 更好的解决方案是找到你需要的确切元素并检查元素中的文本? (类似于:verifyTrue(element.getText()。equals(“text”)) 2.读取堆栈跟踪信息,如果您使用的是Eclipse IDE,则可以单击“控制台”选项卡中的链接