最近因為有自動控制瀏覽器的需求所以研究了一下如何使用 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();
參考資料
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!