最近因為有自動控制瀏覽器的需求所以研究了一下如何使用 Selenium 去控制不同的瀏覽器,並且開啟不同瀏覽器的私密模式,這邊提供幾個範例讓有需要的人參考。
基礎使用方法
基本上最簡單的使用方法可以參考官方範例,它就是開啟一個網頁使用 Google 搜尋 webdriver 作為一個簡單的 Sample
const {Builder, By, Key, until} = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().forBrowser('firefox').build();
try {
await driver.get('http://www.google.com/ncr');
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
} finally {
await driver.quit();
}
})();
Selenium 使用不同瀏覽器
有了上面的範例之後基本上就是使用不同的瀏覽器開啟 Selenium 而已,不過這邊要注意只有 Chrome 不用特別處理 webdriver 其他瀏覽器都需要注意,下面的範例其實就是更新一下 driver 就可以了。
Selenium 開啟 Chrome
const webdriver = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const chromedriver = require('chromedriver');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
Selenium 開啟 Chrome 私密模式
const webdriver = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const chromedriver = require('chromedriver');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.setChromeOptions(new chrome.Options().addArguments("--incognito"))
.build();
Selenium 開啟 Edge
Edge 需要下載 Microsoft Edge Driver才可以控制下載位置參考:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads
下載完需要把目錄加入 path 才可以正常使用
const webdriver = require('selenium-webdriver');
const edge = require('selenium-webdriver/edge');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.edge())
.build();
Selenium 開啟 Edge 私密模式
const webdriver = require('selenium-webdriver');
const edge = require('selenium-webdriver/edge');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.edge())
.setEdgeOptions(new edge.Options().addArguments("inprivate"))
.build();
Selenium 開啟 Firefox
Firefox 需要下載 geckodriver 才可以控制下載位置參考:https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
下載完需要把目錄加入 path 才可以正常使用
const webdriver = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.firefox())
.build();
Selenium 開啟 Firefox 私密模式
const webdriver = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.firefox())
.setFirefoxOptions(new firefox.Options().addArguments("-private"))
.build();