在做页面自动化(以使用selenium为例)的时候,很常见的一个场景是输入密码。往往对于输入框都使用WebElement的sendKeys(CharSequence... keysToSend)的方法。

  Java代码
1./**
2.   * Use this method to simulate typing into an element, which may set its value.
3.   */
4.  void sendKeys(CharSequence... keysToSend);

  一般情况下这个方法是可以胜任的,但是现在很多网站为了安全性的考虑都会对密码输入框做特殊的处理,而且不同的浏览器也不同。例如支付宝。

  支付宝输入密码控件在Chrome浏览器下

 

  支付宝输入密码控件在Firefox浏览器下

 

  支付宝输入密码控件在IE(IE8)浏览器下

  可见在不同的浏览器下是有差异的。那么现在存在两个问题。首先,selenium的sendKeys方法无法操作这样特殊的控件;其次,不同浏览器又存在差异,搞定了chrome,在IE下又不能用,这样又要解决浏览器兼容性问题。