自动化测试之元素操作

当定位好页面元素后,在自动化测试中就需要对该元素进行操作。在selenium中已经定义了不少方法,常用的如:click、tag_name、attribute、text、send_keys、clear、enabled?、displayed?、submit、location等等。通过字面也能理解该方法的作用,查看selenium的源码也能通过注释知道作用:

      # Get the text content of this element
      #
      # @return [String]
      #

      def text
        bridge.getElementText @id
      end

element.text 就可以得到该元素的值,同理element.click 就是点击该元素。这样直接使用selenium的方法就可以完成对元素的操作,从而完成测试步骤和元素检查的工作。但是在实际工作中不建议这样直接使用selenium方法。我们要将这些方法重新封装到我们的测试框架中,在之前的文章《元素组织》中我们讲到了ElementBase元素基类,该类中有一个exist?方法,该方法就是封装了selenium的displayed?方法来判断元素是否存在。同样的我们继续在基类中定义更多的元素操作方法。

class ElementBase
  .......
  def click()
    if exist?
      @@element.click
    end  
  end

 # 如果要检查页面是否显示某个信息,这个方法很实用
 def get_text
  if exist?
     @@element.text
  end
 end

end

按照上面的方式将selenium的元素操作方法封装到我们自定义的ElementBase类中。一般我们还会对操作进行分类,比如大部分元素都适用的方法我们放到ElementBase类中,但对一些特别元素才适用的我们会派生出子类来定义,比如send_keys方法只有input元素才会用到,于是单独定义一个input类,该类又继承于ElementBase类。

class TextInput < ElementBase
  def input(string_text)
    @@element.send_keys string_text
  end
end

这样在定义一个输入框元素的时候继承于TextInput,并在构造函数实例化TextInput类。在case中使用该输入框的时候实例化该输入框,就可以调用input方法来输入值。

module AdminLogin
 class TxtUserName < TextInput
   def initialize
     TextInput.new("xpath","//@name=uname","TxtUserName")
   end
 end
end

AdminLogin::TxtUserName.new.input userName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值