Use Selenium webdriver in Javascript

目标

分别用Firefox和Chrome打开google主页,输入selenium进行搜索,3秒后,再输入nodejs进行搜索。


环境需求

1.   javascript运行平台:nodejs
2.   node module: selenium-webdriver
在命令行中运行npm -g install selenium-webdriver进行安装
3.   浏览器: Firefox 或 Chrome  


Firefox版

首先,确认能在命令行中通过 start firefox启动Firefox浏览器,否则,windows用户需要将Firefox的路径加入系统变量中。


下载最新版本的selenium-server-standalone-2.39.0.jar的jar包,在命令行中启动selenium服务</p style="margin: 0 auto">

java -jar selenium-server-standalone-2.39.0.jar

 

在默认情况下,该服务会启用4444端口

 

创建js文件,如foo.js

 1 var builder = new webdriver.Builder().
 2   usingServer('http://localhost:4444/wd/hub').//webdriver service port
 3   withCapabilities({
 4     browserName: 'firefox' 
 5   });
 6 
 7 driver.get('http://www.google.com');
 8 
 9 driver.findElement(By.css('#lst-ib')).sendKeys('selenium');//type in 'selenium'
10 driver.findElement(By.css('[name="btnK"]')).click(); //click "search"
11 
12 driver.sleep(3000);  //wait for 3 seconds
13 
14 driver.findElement(By.css('#lst-ib')).clear(); //clear the input area
15 driver.findElement(By.css('#lst-ib')).sendKeys('nodejs\n');//type in "nodejs" and press enter

运行foo.js

node foo.js

则可以看到浏览器自动执行foo.js中的行为


 

Chrome版

 

下载chromedriver。 如果是windows,将压缩包里的exe文件解压后,把exe文件所在路径添加到的环境变量中

在命令行直接输入chromedriver启用服务,默认会打开9515端口


创建foo.js

 1 var builder = new webdriver.Builder().
 2   usingServer('http://localhost:9515').
 3   withCapabilities(webdriver.Capabilities.chrome());
 4 var driver = builder.build();
 5 
 6 driver.get('http://www.google.com');
 7 
 8 driver.findElement(By.css('#lst-ib')).sendKeys('selenium');
 9 driver.findElement(By.css('[name="btnK"]')).click(); 
10 
11 driver.sleep(3000);  
12 
13 driver.findElement(By.css('#lst-ib')).clear();
14 driver.findElement(By.css('#lst-ib')).sendKeys('nodejs\n');

运行foo.js

node foo.js

则可以看到浏览器自动执行foo.js中的行为


可能出现的问题

如果出现代码无法解释的问题,请尝试更新selenium或浏览器


posted @ 2014-03-12 16:50  Inkie  阅读(337)  评论(0)    收藏  举报