# （十）模拟键盘按键




### sendKeys

sendKeys()方法可以用来模拟用户按下键盘，组合键比如```ctrl+c```等也可以模拟。

### 目的

* 学会使用sendKeys方法
* 学会使用模拟[特殊按钮](http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_Key.html)

### 场景

测试中我们经常会打开一个页面，然后一下往下拉，直到滚动条拉到最底部，这怎么用selenium来实现呢？

其实我们可以用模拟按空格键的方式实现。大家都知道，在页面上一直按空格键，页面就会到达最底部，当然这并不精确，但大多数时候都是管用的。

下面我们就用代码实现打开[qq首页](http://www.qq.com/)，然后模拟按10下空格键，使页面滚动到最最底部。

### 代码

```javascript
var webdriver = require('selenium-webdriver'),
  By = webdriver.By;

var Key = webdriver.Key;

var dr = new webdriver.Builder().forBrowser('chrome').build();
dr.get('http://www.qq.com');

// 把页面的body找到，在body上模拟按钮，这是整页面模拟按键事件的小技巧
var body = dr.findElement(By.css("body"));

// 每隔1.5s按一次空格键
// setTimeout在js binding中相当于其他binding中的sleep功能
for (var i = 0; i < 10; i++) {
  setTimeout(function() {
    body.sendKeys(Key.SPACE);
  }, i * 1500);
}
```

### 运行结果

页面会缓慢的滚到最底部，如果你的页面滚到中间就停住了，增加滚动次数即可。




原始封面

![课程图片](https://images.unsplash.com/photo-1475299137256-e36862458196?w=300)


