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
//"/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();
});
});