casperjs 各控件实现方法
来源:互联网 发布:js文本框获得焦点 编辑:程序博客网 时间:2024/06/06 01:16
1.LINK
this.click('a[href^="020_test_source_c1.html"]'); -- 后方一致
this.click('a[href*="mhostname=algpae0a"]'); -- 部分一致
this.click('a'); -- 画面上只有一个link的话可用
2.下拉框
A.下拉框里既定的某个值选定
this.fillSelectors("form[name='form']",{
"select[name='projectid']": 'test'});
B.下拉框里的内容可变,将第几个值选中
//プルダウンにINDEX 1を設定
this.evaluate(function(){
document.querySelector('select[name = "version"]').selectedIndex = 1;
return true;
});
//プルダウンの値を取得
var va = this.evaluate(function(){
return document.querySelector('select[name = "version"]').value;
});
this.fillSelectors("form[name='form']",{
"select[name='version']": va});
3.单选框
this.evaluate(function(){
document.querySelector("input[type='radio'][name = 'url']").click();
});
this.evaluate(function(){
document.querySelector("input[type='radio'][value='prd|alge|algew|now']").click();
});
4.复选框
A.固定值的框选中
this.evaluate(function(){
document.querySelector("input[type='checkbox'][name = 'all']").click();
});
B.框的内容是可变的
//パス一覧を取得する
var Nodes = this.getElementsAttribute("input[type='checkbox'][name=path]",'value');
for(var i=0; i<Nodes.length; i++){
this.echo(Nodes[i]);
//"/G"を含まないパスを選択し除外する
if (Nodes[i].indexOf("/G") == -1) {
this.evaluate(function(v){
document.querySelector("input[type='checkbox'][name='path'][value ='"+v+"']").click();
},Nodes[i]);
}
}
5.按钮
this.evaluate(function(){
document.querySelector("input[type='submit'][value=' 複製 ']").click();
});
this.evaluate(function(){
document.querySelector("input[type='submit'][name='approval']").click();
});
this.evaluate(function(){
document.querySelector("input[type='button'][value=' Subversion資源払出 ']").click();
});
6.确认窗口
// 複製をクリック
this.evaluate(function(){
document.querySelector("input[type='submit'][value=' 複製 ']").click();
});
casper.setFilter("page.confirm",function(message){
self.received = message;
this.echo('message to confirm:' + message);
return true;
});
7.文本框
this.evaluate(function(){
document.querySelector("input[name='si_key']").setAttribute("value","test");
});
this.evaluate(function(){
document.querySelector("input[name='from']").setAttribute("value","/");
});
8.文件下载与上传
A.下载
//システム日付
var now = new Date();
var yyyymmdd = now.getFullYear()+( "0"+( now.getMonth()+1 ) ).slice(-2)+( "0"+now.getDate() ).slice(-2);
var releaseNo = yyyymmdd+"_test"; //リリース番号
var logdir = "test/"+yyyymmdd+"_01"; // ログ格納場所
casper.then(function() {
this.echo('Main Menu');
this.wait(1000, function() {
this.capture(logdir +'/test.png');
var downloadurl = ""
var listtext = releaseNo+"_LIST.txt"; //ファイル名
downloadurl = "https://XX.XX.XX.XX:XXXX/Common/download.html?mode=ascii;dir=/Library/RealVersion/log/Release/prd/"+releaseNo+"/.rvn/list/Release/"+listtext;
this.download(downloadurl,'slm/releasefile/'+listtext);
});
});
B.上传
casper.then(function() {
this.wait(1000, function() {
this.capture(logdir +'/test.png');
this.page.switchToChildFrame(0);
this.page.switchToChildFrame('right');
var listtext = releaseNo+"_LIST.txt"; //ファイル名
//リストファイルをアップロードする
this.page.uploadFile("input[name='check_file']",'D:/casperjs/bat/releasefile/'+listtext);
//準備リスト確認クリック
this.evaluate(function(){
document.querySelector("input[type='submit'][value='確認']").click();
});
this.page.switchToParentFrame();
this.page.switchToParentFrame();
});
});
- casperjs 各控件实现方法
- CasperJS 实现百度登录
- casperjs
- Casperjs
- casperjs
- CasperJS
- casperjs中start方法的使用方法总结
- casperjs中fill()方法的使用
- casperjs中getPageContent()方法及getHTML()方法的使用
- casperjs中调用本地自定义js文件的方法
- CASPERJSのbatファイル実行方法
- 利用phantomjs+casperjs实现登陆抓取网页并截图
- html转image--通过casperjs在服务器端实现
- 基于casperjs、resemble.js实现一个像素对比服务
- 自定义控件三实现方法
- casperjs小结
- casperjs小结
- [CasperJS] 安装
- MySQL快速复制数据表数据方案
- 反射调用性能比较
- 深入浅出Windows 10 通用应用开发学习笔记(C++) 3-1
- ImageNet和PASCAL VOC图像描述的xml文件的解析、修改和生成
- Android 6.0: 动态权限管理的解决方案
- casperjs 各控件实现方法
- 对称多处理结构
- BroadcastRecevier广播的基本使用
- oracle创建函数例子
- 关于LED电视机视频编码H.264,MPEG4,MPEG2能支持哪些格式的视频文件
- include包含文件查找的顺序
- 网络资源:常用的图表类库插件
- 征迈科技USB高速工业控制器——高速数据采集模块定制开发
- Ubuntu NetworkManager 使用:Ubuntu的wired Networks 变灰色,无法连接网络