【问题标题】:SeleneseTestCase is deprecated - how to call verify* methods?SeleneseTestCase 已弃用 - 如何调用 verify* 方法?
【发布时间】:2011-02-23 17:34:56
【问题描述】:

当我在 Selenium IDE 中使用 JUnit 4 格式化程序生成的代码时,我收到警告说 SeleneseTestCase 类已被弃用 - 这是有道理的,因为它应该使用 JUnit 4 语法并使用注释而不是从测试类派生。

问题是当我修改我的代码以不扩展 SeleneseTestCase 时,我不确定如何调用 verify* 方法 - 它们似乎只存在于已弃用的类中。我可以使用下面的代码运行我的 selenium 操作,但 verifyTrue 未定义。在 Selenium 2.0b2 中调用验证方法的正确方法是什么?

private static Selenium selenium;

@Before
public void setUp() throws Exception {
    selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://testurl.com/");
    selenium.start();
}

@Test
public void testLogin() throws Exception {
    selenium.open("/test.html");
    verifyTrue(selenium.isTextPresent("Please Sign In"));
    .....

【问题讨论】:

  • 这篇文章展示了 Selenium Java 测试用例的正确 JUnit4 格式,但没有展示如何验证文本 qtp-help.blogspot.com/2009/05/junit-4.html
  • 不要声明你的Seleniumstatic
  • 哎呀 - 谢谢 - 玩太多代码了!

标签: java selenium


【解决方案1】:

我认为这个想法是让您使用 JUnit 的 Assert.assertXXX() 不同之处在于 verifyXXX 将在拆卸期间失败而不是立即失败,但我认为使用 Selenium 测试您通常希望尽快失败(因为这些测试往往要慢)。

【讨论】:

  • 所以验证的整个想法在版本 2 中消失了?
  • 听起来很像。总而言之,我建议你看看 Selenium 的 WebDriver API,它更好,并且与实际的浏览器有很好的集成。
【解决方案2】:

由于不推荐使用 SeleneseTestCase,您可以使用 SeleneseTestBase 代替 SeleneseTestCase。 java代码如下:

import com.thoughtworks.selenium.SeleneseTestBase;
public class MySeleniumTest extends SeleneseTestBase{

@Test
public void aMethod(){
verifyTrue(boolean condition);
}
}

如果你不扩展 SeleneseTestBase 类,你可以使用如下对象:

new SeleneseTestBase().verifyTrue(boolean condition);

【讨论】:

  • 更具体地说,您的代码将是:verifyTrue(selenium.isTextPresent("请登录"));
猜你喜欢
  • 2013-01-31
  • 2016-06-08
  • 2012-09-20
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多