在Selenium中测试GET简单寻呼机图像按钮启用状态

时间:2013-01-22 22:55:50

标签: java selenium selenium-webdriver gwt

我们使用提供的SimplePager GWT来提供数据集的记录/页面导航。我们想要测试我们正确控制Next / Previous按钮的启用状态。虽然SimplePager允许我们为按钮指定启用/禁用图像,但“按钮”本身是ImageButton的内部类,它扩展Image而不是Button。因此,生成的HTML不使用Button启用/禁用属性,而是为每个状态提供不同的嵌入图像。

有没有合理的方法来检测Selenium中的SimplePager导航按钮启用状态?

3 个答案:

答案 0 :(得分:0)

在标准练习中,你应该创建自定义组件,比如说Image按钮。我建议你使用ISFW,它提供可以与注释一起使用的creating custom component功能。在组件中,您可以按AUT指定行为。

答案 1 :(得分:0)

重新编写代码示例以获得更好的格式。

public class ImageButton extends Component{
   public ImageButtom (String loc){
    super(locator);
   } 

   @Override
   public boolean isEnabled() {
    //custom representation!...
    return this.getAttribute("class").contains("imgdisabled");
    //return this.getCssValue("background").contains("imgdisabled");
    //return this.getAttribute("src").contains("imgdisabled");
   }
}

您可以在测试页中使用像Webelement这样的组件

@FindBy(locator="locator")
ImageButton prevButton;

@FindBy(locator="locator")
ImageButton nextButton;

在您的测试代码中

page.prevButton.verifyEnabled();
page.prevButton.assertEnabled();

答案 2 :(得分:0)

查看SimplePager的源代码,看起来他们使用生成器来创建css样式,其中禁用状态(和启用状态)已应用了css类(即时通讯{{3} })。

因此,如果你能以某种方式访问​​实际的Resources客户端包,那么你可以调用resources.simplePagerStyle().disabledButton()来获取一个字符串,该字符串是禁用按钮的css类,然后你可以使用它作为硒的定位器。这可能是非常棘手的,因为运行selenium测试的jvm可能无法引用已编译的GWT代码(即,在调试GWT应用程序时运行的代码)。

或者,你可以继承SimplePager,而不是使用DEFAULT_RESOURCES客户端包,传递你自己的,然后你可以控制用于禁用按钮的类名(通过制作你自己的{ {1}}类,它只包装您从原始客户端包中获得的现有类,但在返回值中添加前缀或其他内容)。

它有点乱,因为组件是完全封装的,而你正试图弄清楚其内部。