1. 介绍

selenium 是用于编写 web e2e 测试脚本的工具,它支持现在主流的浏览器,并且支持多种语言。

npm

2. 安装

  1. $ npm install selenium-webdriver

3. 下载浏览器驱动

根据需要下载即可

注意🐷:

  1. 驱动的版本需要和你使用的浏览器的版本保持一致,否则运行时会报错
  2. 驱动文件要放在项目根目录下

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

  1. const {Builder, By, Key, until} = require('selenium-webdriver');
  2. (async function example() {
  3. let driver = await new Builder().forBrowser('chrome').build();
  4. try {
  5. await driver.get('https://www.baidu.com/');
  6. await driver.findElement(By.name('wd')).sendKeys('webdriver', Key.RETURN);
  7. await driver.wait(until.titleIs('webdriver_百度搜索'), 1000);
  8. } finally {
  9. await driver.quit();
  10. }
  11. })();

5. 执行

  1. $ node tests/e2e/index.spec.js

此时你会看到浏览器打开百度并搜索 webdriver,然后很快就关闭了

Selenium - 图1

这就说明测试通过了

你可能说太快了,没看清楚😄

我们把代码改一下

  1. ...
  2. // await driver.wait(until.titleIs('webdriver_百度搜索'), 1000);
  3. await driver.wait(until.titleIs('webdriver_百度'), 1000);
  4. ...

再来执行一下

Selenium - 图2

终端上已经把错误信息给打印出来了,至此一个简单的小 demo 就完成了

想实现更复杂的功能,可以参考 selenium 的 API