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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Selenium中测试GET简单寻呼机图像按钮启用状态相关的知识,希望对你有一定的参考价值。

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

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

答案

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

另一答案

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

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();
另一答案

看看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类,它只包装您从中获得的现有类原始客户端捆绑包,但在返回值中添加前缀或其他内容)。

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

以上是关于在Selenium中测试GET简单寻呼机图像按钮启用状态的主要内容,如果未能解决你的问题,请参考以下文章

如何在寻呼机中实现图像视图和按钮

从头开始查看寻呼机图像(片段)滑块

隐藏在按钮android下的图像

在 Selenium 中测试 GWT SimplePager ImageButton 启用状态

Selenium-测试对象操作之:输入框按钮

按钮单击元素 img 中的 Selenium