1. 介绍
selenium 是用于编写 web e2e 测试脚本的工具,它支持现在主流的浏览器,并且支持多种语言。
2. 安装
$ npm install selenium-webdriver
3. 下载浏览器驱动
根据需要下载即可
注意🐷:
- 驱动的版本需要和你使用的浏览器的版本保持一致,否则运行时会报错
- 驱动文件要放在项目根目录下
chrome 有时下载比较慢,你可以在上面 driver 目录中找到我下载的 Chrome 驱动
| Browser | Component |
|---|---|
| Chrome | chromedriver(.exe) |
| Internet Explorer | IEDriverServer.exe |
| Edge | MicrosoftWebDriver.msi |
| Firefox | geckodriver(.exe) |
| Safari | safaridriver |
4. 编写测试代码
./tests/e2e/index.spec.js
const {Builder, By, Key, until} = require('selenium-webdriver');(async function example() {let driver = await new Builder().forBrowser('chrome').build();try {await driver.get('https://www.baidu.com/');await driver.findElement(By.name('wd')).sendKeys('webdriver', Key.RETURN);await driver.wait(until.titleIs('webdriver_百度搜索'), 1000);} finally {await driver.quit();}})();
5. 执行
$ node tests/e2e/index.spec.js
此时你会看到浏览器打开百度并搜索 webdriver,然后很快就关闭了

这就说明测试通过了
你可能说太快了,没看清楚😄
我们把代码改一下
...// await driver.wait(until.titleIs('webdriver_百度搜索'), 1000);await driver.wait(until.titleIs('webdriver_百度'), 1000);...
再来执行一下

终端上已经把错误信息给打印出来了,至此一个简单的小 demo 就完成了
想实现更复杂的功能,可以参考 selenium 的 API
