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或浏览器


转载于:https://www.cnblogs.com/inkie/p/3596674.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关东升的iOS实战系列图书 《iOS实战:传感器卷(Swift版)》已经上市

&#xfeff;&#xfeff;承蒙广大读者的厚爱我的 《iOS实战&#xff1a;传感器卷&#xff08;Swift版&#xff09;》京东上市了&#xff0c;欢迎广大读者提出宝贵意见。http://item.jd.com/11760248.html 欢迎关注关东升新浪微博tony_关东升。 关注智捷课堂微信公共平台&#…

带分页的标签

原型图 图片.png重要的实现代码 var getMemo function(pageNo,name){$(#dataDiv).html("");$.ajax({url: basePath "/signIn/set/getSignSetListPage",datatype: json,type: "POST",data: { "pageNo": pageNo,"name":name…

jquery复选框 选中事件 及其判断是否被选中_常用笔记

checkbox的change事件可监听是否选中状态&#xff0c;也可添加onclick事件。var dom$(.checkbox);1. 判断checkbox是否被选中 var dom$(.checkbox);dom.prop(checked); //实现控制checkbox是否选中状态: 切换到初始状态  if (!(dom.prop(checked))) {   dom.prop(c…

线段树hdu1754

#include<iostream>#include<stdio.h>using namespace std;const int maxa200005;int val[maxa];struct tree{int max, left, right;}tree[maxa*3]; int create(int root,int left,int right) //root的*2和*21分别存root的前后部分{ tree[root].leftleft; tree[roo…

Apache2 部署flask项目

Apache2 部署flask项目 需要安装的插件&#xff1a; apt-get install apache2 apt-get install libapache2-mod-wsgi 在 /etc/apache2/sites-available/ 目录下创建对应的项目配置文件“xxx.conf”&#xff0c;用于项目与Apache2之间的链接(配置文件名自定义)&#xff1a;…

显示中文

开机点击“开始菜单”-->”首选项“-->”Raspberry Pi Configuration“-->”Localisation“下设置中文及本地时间。 树莓派默认是采用英文字库的&#xff0c;而且系统里没有预装中文字库&#xff0c;所以即使你在locale中改成中文&#xff0c;也不会显示中文&#xff…

[iOS Animation]-CALayer 性能优化实例

2019独角兽企业重金招聘Python工程师标准>>> 一个可用的案例 现在我们已经对Instruments中动画性能工具非常熟悉了&#xff0c;那么可以用它在现实中解决一些实际问题。 我们创建一个简单的显示模拟联系人姓名和头像列表的应用。注意即使把头像图片存在应用本地&…

【More Effective C++】Item 6

Item 6&#xff1a;区别Increment和Decrement操作符的前置&#xff08;prefix&#xff09;和后置&#xff08;postfix&#xff09;形式  前置和后置的区别主要在于函数参数不一样&#xff0c;后置形式中多了一个int型的参数&#xff0c;在后置形式被调用时&#xff0c;编译器…

WordPress 多语言支持(本地化)

https://www.cnblogs.com/ryanzheng/p/8309261.html WordPress 多语言支持&#xff08;本地化&#xff09; 本博客将介绍WordPress的多语言制作 首先需要在wp-content目录下创建一个languages文件夹&#xff0c;用于存放语言包文件。 然后在模板目录下的functions.php&…

timestamp与timedelta,管理信息系统概念与基础

将字符串‘2017年10月9日星期一9时10分0秒 UTC8:00’转换为timestamp。100天前是几号?今年还有多少天&#xff1f;管理有不同层次所需信息各有什么特点?管理信息系统从层次上可分为哪几类&#xff1f;数据处理经历了哪些阶段&#xff1f;各有什么特点&#xff1f;什么是web&a…

ZooKeeper1 利用虚拟机搭建自己的ZooKeeper集群

前言: 前段时间自己参考网上的文章&#xff0c;梳理了一下基于分布式环境部署的业务系统在解决数据一致性问题上的方案&#xff0c;其中有一个方案是使用ZooKeeper&#xff0c;加之在大数据处理中&#xff0c;ZooKeeper确实起到协调服务的作用&#xff0c;所以利用周末休息时间…

公共的Controler,是给非授权的用户访问

issue: 我使用的环境是Vs2012 , 创建了MVC4的工程&#xff0c;然后在工程里面Webconfig, 添加了访问限制 <authentication mode"Forms"> <forms loginUrl"~/Account/Login" timeout"2880" /> </authentication> <…

替换更改登陆页面logo与链接

//替换更改登陆页面logo与链接 function custom_loginlogo() {echo<style type"text/css"> h1 a {background-image: url(.get_bloginfo(template_directory)./logo.png) !important; } </style>;}add_action(login_head, custom_loginlogo); 注: 在主题…

es6关于let和const的总结

set用于声明变量 1.var 的一个升级版 2.不存在变量提升 console.log(a);//Uncaught ReferenceError: a is not definedlet a1;console.log(a);//1 console.log(a);//undefinedvar a1;console.log(a);//1 3.会形成暂时性死区&#xff08;处于同一个块级作用域里的同名变量在let声…

解决SublimeCodeIntel回车换行误打代码

SublimeCodeIntel会自动匹配并联想词汇, 这在换行的时候非常麻烦, 每次点Enter 都会误打出代码, 解决办法分两步:第一步是在Perferences/setting User 中加入 "auto_complete_commit_on_tab": true, 然后看Perferences/KeyBindings Default中 { "keys": [&…

【转】测试过程管理案例6---如何做项目的测试经理?

帖子地址&#xff1a; http://bbs.testage.net/viewthread.php?tid4588&pid184557&page1&extrapage%3D1#pid184557 案例描述&#xff1a; 简单叙述一下我遇到的问题吧&#xff1a; 公司其它部门有个项目&#xff0c;需要做很严格的测试&#xff0c;请求我们部门支…

Mysql 根据一个表数据更新另外一个表

https://www.cnblogs.com/wu628/p/4948833.html Mysql 根据一个表数据更新另外一个表 update 更新表 set 字段 (select 参考数据 from 参考表 where 参考表.id 更新表.id); update table_2 m set m.column (select column from table_1 mp where mp.id m.id); 方法二&a…

Html5响应式设计与实现广场

由于提出的想法响应式设计&#xff0c;越来越多的网站使用这样的思想。各类大型网站如雨后春笋般涌了出来。例如&#xff1a;小米商城。天猫等。 至于响应式设计的概念等大家能够去百度百度&#xff0c;我这里就不相信解说了。直接为大家带来源代码。用Html5实现响应式的九宫格…

工作问题日志

1. 获取用户请求的路径&#xff1a;HttpServletRequest request (HttpServletRequest) req;String servletPath request.getServletPath(); 2. 相对通用的读文件流的方法&#xff08;Windows 和 Linux上都可以用&#xff09;&#xff1a;拿到流&#xff0c;然后再去读流中的内…

wordpress 每段首行空两格

p {text-indent:2.1em;} 注&#xff1a; 在文章页&#xff0c;添加样式即可。