Node.js selenium-webdriver

简介:

6.5. Node.js selenium-webdriver

6.5.1. 安装测试环境

6.5.1.1. Selenium Server

下载 Selenium Serverhttp://selenium-release.storage.googleapis.com/2.40/selenium-server-standalone-2.40.0.jar

启动 Selenium Server

java -jar selenium-server-standalone-2.40.0.jar
			
6.5.1.2. 安装 selenium-webdriver

CentOS 6.5

# yum install nodejs npm 
# npm -g install selenium-webdriver
			

默认node_modules安装在 /usr/lib/node_modules/selenium-webdriver

Ubuntu 13.04

sudo apt-get install nodejs
sudo apt-get install npm
sudo npm -g install selenium-webdriver
			

默认node_modules安装在 /usr/local/lib/node_modules/selenium-webdriver

不是用-g参数npm install selenium-webdriver 将会安装在当前目录下

6.5.1.3. 浏览器相关设置

远程控制Chrome参考

https://code.google.com/p/selenium/wiki/ChromeDriver下载后解压运行里面的可执行文件

var driver = new webdriver.Builder().usingServer('http://192.168.6.20:9515/').withCapabilities(webdriver.Capabilities.chrome()).build();  
			

Firefox 使用

var driver = new webdriver.Builder().usingServer('http://192.168.6.20:4444/wd/hub').withCapabilities(webdriver.Capabilities.firefox()).build();  				
			

6.5.2. 测试例子

例 6.3. Node.js selenium-webdriver 本地测试

selenium-server-standalone 与 测试脚本在同一台机器上

			
var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();

driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnK')).click();
driver.wait(function() {
  return driver.getTitle().then(function(title) {
    return title === 'webdriver - Google Search';
  });
}, 1000);

driver.quit();
			
			

例 6.4. NODE.JS selenium-webdriver 远程测试

从一台测试机遥控另台selenium-server-standalone

			
var webdriver = require('/usr/local/lib/node_modules/selenium-webdriver');

var builder = new webdriver.Builder().  
  usingServer('http://192.168.6.20:4444/wd/hub').  
  withCapabilities(webdriver.Capabilities.firefox());  

var driver = builder.build();  

driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnK')).click();
driver.wait(function() {
  return driver.getTitle().then(function(title) {
    return title === 'webdriver - Google Search';
  });
}, 1000);

driver.quit();
			
			

6.5.3. Unit Test

安装 mocha

npm install -g mocha
		

测试脚本

var assert = require('assert'),
test = require('selenium-webdriver/testing'),
webdriver = require('selenium-webdriver');

test.describe('Google Search', function() {

	test.it('should work', function() {
		//var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
		var driver = new webdriver.Builder().usingServer('http://192.168.6.20:4444/wd/hub').withCapabilities(webdriver.Capabilities.firefox()).build();  
		driver.get('http://www.google.com');
		var searchBox = driver.findElement(webdriver.By.name('q'));
		searchBox.sendKeys('simple programmer');
		searchBox.getAttribute('value').then(function(value) {
			assert.equal(value, 'simple programmer');
		});
		driver.quit();
	});
});
		

运行测试程序

# mocha mocha.js 
  1 passing (10s)
		

测试成功返回1 passing (10s)

目录
相关文章
|
8月前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
|
JavaScript
selenium--操作JS弹框
selenium--操作JS弹框
|
5月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
16天前
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
3月前
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
79 4
|
8月前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
111 10
|
3月前
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
100 2
|
8月前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
62 0
|
Web App开发 前端开发 JavaScript
Selenium 如何定位 JavaScript 动态生成的页面元素
Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。这时候,如果我们直接用 Selenium 的 find_element 方法去定位元素,可能会出现找不到元素的错误,因为页面还没有加载完成。为了解决这个问题,我们需要使用一些特定的定位技巧,让 Selenium 等待元素出现后再进行操作。
561 0
|
Web App开发 JavaScript 前端开发
Python Selenium 执行 JavaScript
Python Selenium 执行 JavaScript

热门文章

最新文章