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

问题描述 投票:7回答:3

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

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

java selenium selenium-webdriver gwt
3个回答
0
投票

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


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();

0
投票

看看SimplePager的源代码,看起来他们使用生成器来创建css样式,其中禁用状态(和启用状态)有一个css类应用于它(我离开这个https://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/cellview/client/SimplePager.java?r=9614)。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.