Selenium3.X 与 Javascript (Nodejs)

传送门

# 官网网站
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

 

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

browsercomponent
Chromechromedriver(.exe)
Internet ExplorerIEDriverServer.exe
EdgeMicrosoftWebDriver.msi
Firefox 47+geckodriver(.exe)
PhantomJSphantomjs(.exe)
Operaoperadriver(.exe)
Safarisafaridriver

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等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值