在Selenium版本4和更高版本中,有什么方法可以以无头模式执行UI测试?

时间:2019-05-08 07:00:43

标签: javascript node.js selenium selenium-webdriver google-chrome-headless

最近,Selenium发布了其主要版本Selenium 4,并宣布从Selenium4开始将不再对PhantomJS提供任何支持。这是否意味着Selenium不再支持无头自动化,还是有任何方法可以在Selenium 4版中以无头模式执行测试?欣赏代码示例。

1 个答案:

答案 0 :(得分:3)

在Selenium 4中,已删除了对PhantomJS的本地支持。尽管如此,使用PhantomJS在无头模式下运行脚本的用户仍可以在无头模式下使用Chrome或Firefox,如下所示。

const chrome = require('../chrome');
const firefox = require('../firefox');
const {Builder, By, Key, until} = require('..');

const width = 640;
const height = 480;

let driver = new Builder()
    .forBrowser('chrome')
    .setChromeOptions(
        new chrome.Options().headless().windowSize({width, height}))
    .setFirefoxOptions(
        new firefox.Options().headless().windowSize({width, height}))
    .build();

driver.get('http://www.google.com/ncr')
    .then(_ =>
        driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
    .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
    .then(
        _ => driver.quit(),
        e => driver.quit().then(() => { throw e; }));

要了解有关Selenium 4更改的更多信息,请参阅Selenium 4 (alpha) is Released: What’s New?