0

私は casperJS を使用してファイルをインポートしています。以下は HTML スクリプトとダイアログ ボックスの画像です。

ファイルアップロードのダイアログボックス

<div class="container">
<p>Import notebooks from another GitHub instance.</p>
<p>Currently import does not preserve history.</p>
<p>
source repo api url: 
<input id="import-source" class="form-control-ext" type="text" value="https://api.github.com" style="width:100%;">
</p>
<p>
notebooks:
<br>
<textarea id="import-gists" class="form-control-ext" form="port" cols="30" rows="10" style="height: 20%;width: 50%;max-width: 100%"></textarea>
</p>
<p>
prefix (e.g.
<code>folder/</code>
to put notebooks in a folder): 
<input id="import-prefix" class="form-control-ext" type="text" style="width:100%;">
</p>
</div>

シナリオでは、ノートブック フィールドにノートブックの ID を入力し、インポートをクリックする必要があります。以下は、私が使用したcasperJSコードです

casper.then(function(){
    this.click({type:'xpath', path:".//*[@id='rcloud-navbar-menu']/li[3]/a"});
    if(this.test.assertVisible('#import_notebooks'),"Import external notebook is visible")
    {
        this.click('#import_notebooks');
    }else
    {
        console.log('Import external notebook is not visible');
    }
    this.wait(2000);
});

casper.then(function(){
    this.sendKeys({type:'css',path:"#import-gists"}, notebookID);
    this.click('.btn.btn-primary');
});

ダイアログ ボックスは開きますが、ノートブック フィールドにテキストを入力できません。

4

2 に答える 2

0

casper.test.assertVisible()アサーションの結果を示すブール値を返しません。結果オブジェクトを返します。その行も構文的に健全ではありません。

おそらく使用したかったのは次のcasper.visible()とおりです。

if(this.visible('#import_notebooks')) {
    this.click('#import_notebooks');
} else {
    console.log('Import external notebook is not visible');
}
于 2015-05-11T14:20:17.773 に答える