您的位置:首页 > 编程语言 > ASP

casperjs 各控件实现方法

2016-01-26 15:18 639 查看
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();

    });

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: