传送门

# 官网网站
http://docs.seleniumhq.org/download/

# API DOC
http://goo.gl/hohAut # 慕课网教程
http://www.imooc.com/learn/792 # 虫师教程
http://www.cnblogs.com/fnng/p/5854875.html # 火狐浏览器历史版本下载
http://ftp.mozilla.org/pub/firefox/releases # 火狐插件:firepath 非前端人员可能不熟悉css选择器,所以可以使用xpath
https://addons.mozilla.org/zh-CN/firefox/addon/firepath/?src=search # 火狐插件:Selenium IDE 录制
https://addons.mozilla.org/zh-CN/firefox/addon/selenium-ide/?src=search

下载

npm install selenium-webdriver

各大浏览器厂商的官方驱动文件

browser component
Chrome chromedriver(.exe)
Internet Explorer IEDriverServer.exe
Edge MicrosoftWebDriver.msi
Firefox 47+ geckodriver(.exe)
PhantomJS phantomjs(.exe)
Opera operadriver(.exe)
Safari safaridriver

PS: driver的版本 与 浏览器的版本密切相关,请按需下载,比如chromedriver可以通过其中notes.txt查看支持的版本信息

然后,把这些驱动下载,并存放到一个目录中,例如:D:/driver/ ,再把这个目录添加到系统环境变量PATH下面。

下面我以Firefox为例,既然上面写着47+ , 那么我就下载48来演示好了

Firefox历史版本下载:http://ftp.mozilla.org/pub/firefox/releases/

官方demo代码

var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until; var driver = new webdriver.Builder()
.forBrowser('firefox')
.build(); driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 2000);
driver.quit();

PS:如果出现【Could not convert 'text' to string】,别担心,这是新版webdriver的bug。在stackoverflow上已有其它开发者解决:

https://github.com/mozilla/geckodriver/issues/683

只需要修改node_modules\selenium-webdriver\lib\webdriver.js中的代码即可:

https://github.com/SeleniumHQ/selenium/commit/6907a129a3c02fe2dfc54700137e7f9aa025218a

正常运行后,会自动启动Firefox,访问 Google 并且搜索 webdriver。然后关闭浏览器。

有时候,需要模拟移动端浏览器测试。例子如下,这次使用Chrome浏览器来测试,请下载对应的版本驱动

var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until,
chrome = require('selenium-webdriver/chrome'); var driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options()
.setMobileEmulation({deviceName: 'Google Nexus 5'}))
.build(); driver.get('https://m.baidu.com');
driver.findElement(By.name('word')).sendKeys('webdriver');
driver.findElement(By.name('word')).submit();
driver.wait(until.titleIs('webdriver - 百度'), 2000);
driver.quit();

常用的deviceName还是以iPhone为主,名字举例:Apple iPhone 6 Plus、Apple iPhone 4等

Selenium3.X 与 Javascript (Nodejs)的更多相关文章

  1. VSCode and NoteBook for JavaScript | NodeJS

    VSCode调试HTML环境配置 | Jupyter NoteBook IJavaScript 配置 VSCode调试HTML环境配置 先安装两个插件:Debugger for Chrome(调试) ...

  2. Sublime Text3搭建完美开发环境(Python+PHP+Javascript+nodejs+C++)

    一.Sublime配置(如已安装Package Control可跳过) sublime下载地址:http://www.sublimetext.com/3 安装Package Control插件: 直接 ...

  3. Javascript / Nodejs call 和 apply

    call: 改变了函数运行的作用域,即改变函数里面this的指向apply:同call,apply第二个参数是数组结构 例如: this.name = 'Ab'var obj = {name: 'BB ...

  4. NodeJS中 package.json各属性分析

    package.json 中包含各种所需模块以及项目的配置信息(名称.版本.许可证等)meta 信息. Name:它属于必须字段,在package.json中最重要的就是name和version字段, ...

  5. NodeJS中 package.json 解析

    package.json 中包含各种所需模块以及项目的配置信息(名称.版本.许可证等)meta 信息. 包含可配置项 name 名称 应用描述 description 版本号 version 应用的配 ...

  6. Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

  7. NodeJS学习之异步编程

    NodeJS -- 异步编程 NodeJS最大的卖点--事件机制和异步IO,对开发者并不透明 代码设计模式 异步编程有很多特有的代码设计模式,为了实现同样的功能,使用同步方式和异步方式编写代码会有很大 ...

  8. nodejs开发环境sublime配置

    前端时间使用webstorm搭建一个node.js的学习环境,感觉非常强大.不过由于其加载的速度,每次让都让我抓狂.后来我找到了一个sublime.虽说3.0以上是收费的,2.0暂时免费.官方的不对s ...

  9. javascript summary

    Client Javascript HTML5: http://www.html5rocks.com/en/ Libraray: JQuery, JQuery Mobile, Zepto, MoolT ...

随机推荐

  1. 如何让springboot中的某些html文件不经过thymeleaf模板解析?

    这个thymeleaf有时有用,有时用不着. 但默认设置,所有的html都会经过它解析. 我的作法,是新建public,在resource里,所有css,js所放里面.(当然,static下也是OK的 ...

  2. kibana- Pie

    1. Visualize 新建图形 2. 选择图形类型 3. 选择索引 4. 设置Pie参数 5. 保存图形

  3. javascript 回调函数

    在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply() ...

  4. Linux是32位还是64位

    命令行输入 file /bin/ls 显示 /sbin/init: ELF 64-bit LSB executable, x86-64 ...   则为64位 file /sbin/init /sbi ...

  5. POJ 3171 Cleaning Shifts(DP+zkw线段树)

    [题目链接] http://poj.org/problem?id=3171 [题目大意] 给出一些区间和他们的价值,求覆盖一整条线段的最小代价 [题解] 我们发现对区间右端点排序后有dp[r]=min ...

  6. Spring Boot特点

    特点: 1.化繁为简,简化配置 2.备受关注,是下一代框架 3.为服务的入门级框架

  7. SQLServer To MySQL 解决方案

        最近在忙一个项目,就不详写了.过两天不忙了把项目总结一下.   思路: Access作为桥梁   1.SQLServer To Access 2007 在access里直接导入 2.Use t ...

  8. make: ./libtool:命令未找到

    make: ./libtool:命令未找到 问题描述: [root@bogon jpeg-6b]# ; make install./libtool --mode=compile gcc -O2 -I. ...

  9. EDM邮件群发十大技巧提升邮件群发效果

    有很多人抱怨现在邮件群发没有什么效果,其实不然,每一种推广方式都有他的优势,没有看到效果说明你没有掌握好方法.个人觉得EDM邮件群发的优势在于传播速度快.不受地域限制.不受时间限制.邮件内容能够多元化 ...

  10. 【Linux】Linux下 环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别【转】

    转自:http://blog.csdn.net/qiao1245/article/details/44650929 ------------------------------------------ ...