可參考網上的步驟進行操做。例如這篇文章:https://wangheng3751.github.io/2018/01/17/selenium/javascript
一、安裝Node.js,去官網下載最新版本的Node.js安裝html
二、安裝seleniumjava
npm install selenium-webdriver --savenode
三、安裝瀏覽器驅動,以 chrome 爲例git
npm install chromedriver --savegithub
而後寫 demo 測試…web
中間我遇到了二個問題chrome
1)「The ChromeDriver could not be found on the current PATH」數據庫
須要將 ChromeDriver 添加到系統的環境變量 Path 中npm
例如我本機的路徑 「C:\Users\xxx\AppData\Roaming\npm\node_modules\chromedriver\lib\chromedriver」
2)瀏覽器打開時,地址欄顯示 data; 而不是預期的指定的 url
解決方案,可取先升級本身的瀏覽器。
或者更換版本,下載最新(下載連接>>)找到版本,將其替換本地路徑,更新爲最新的 exe 文件
「C:\Users\xxx\AppData\Roaming\npm\node_modules\chromedriver\lib\chromedriver」
一個版本一個版本更換
最後運行 demo,好比 node index.js
// inde.js var webdriver = require('selenium-webdriver'); var driver = new webdriver.Builder() .forBrowser('chrome') .build(); // var driver = new webdriver.Builder(). // withCapabilities(webdriver.Capabilities.chrome()). // build(); // driver.get('http://www.baidu.com'); // driver.findElement(webdriver.By.id('kw')).sendKeys('webdriver', webdriver.Key.RETURN); // https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_By.html driver.get('https://bugly.qq.com/v2/workbench/apps'); // driver.findElement({ className: 'login_btn' }).findElement({ tagName: 'a' }).click(); driver.wait(webdriver.until.titleIs("QQ賬號安全登陸")).then(() => { driver.sleep(5 * 1000).then(() => { var frameElement = webdriver.By.id('ptlogin_iframe'); driver.switchTo().frame(driver.findElement(frameElement)).then(() => { driver.findElement({ id: 'qlogin_show' }).findElement({ tagName: 'a' }).click(); }); }); });
能實現自動登陸 bugly,由於 bugly 作了不少限制,直接調用它的接口是不行的,因此至關於用程序開啓一個瀏覽器進程,而後用程序控制它。
這個跑 web 的自動化測試仍是很方便的,好比上面示例中,打開百度,輸入關鍵字,而後回車。
爬蟲的話,可能有一些站點作了不少嚴格的限制,好比 referer 或者 加過密,此時用 Selenium 來自動化填寫表單,而後獲取數據並存到數據庫,仍是挺方便的。
更多官網的API能夠前往這裏查看,https://seleniumhq.github.io/selenium/docs/api/javascript/index.html