2017-07-10 14 views
0

私はGebを初めて使用しています。私はウェブページ上のテキストをチェックし、その値が存在する場合にアサートします。私が興味を持っているテキストはテーブルの行のテキストです ここに私のHTMLテーブルの行のCSS/xpathです。GebがHTMLテーブル行のテキストにアサートしました

/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a 

body > table > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(3) > td:nth-child(2) > table > tbody > tr > td > table > tbody > tr:nth-child(2) > td > b > pre > a 

私の必要性は、この行の値が特定のテキストと一致するかどうかを確認し、それをアサートすることです。

Gebで行う最良の方法は何ですか。私は様々なオプションを試してみましたが、私は明確な手がかりを得ていません。

class HomePage extends Page 
{ 
    static at ={ title== "Dispute Home Page"} 

    static content = { 
     displayMsg {$(By.xpath("/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a"))} 

     def message = displayMsg.text() 
     assert (message == 'text pattern') 
    } 
} 

あなたがコンテンツブロックであなたのアサートを持っているように見え、事前に

答えて

0

は、私は非常にあなたはjqueryのとほぼ同じページオフコンテンツを取得することができますGeb's navigator apiを活用助言します。 xpathを使用するのは読みにくく、保守が難しく、ベストプラクティスではありません。あなたのコンテンツブロックで

、あなたはidを持つテーブルを定義する場合:

myTable{ $("table#myTable")} 

は今、あなたは、次のようなことを行うことができます。これは、もちろん上に拡張することができ

myTable.children('td').find{it.text() == 'your text here' } 

見つけます特定の行または表のデータを名前または索引で指定します。私はGithub Repoに適切なページオブジェクトとスペックファイルの例をいくつか持っています。これは将来のテストを書く上で助けになるはずです。私はこれがあなたに働くのに十分であることを願っています。

0

をお願いします。それはそれ自身の方法でなければなりません。このような何か:初心者のために

class HomePage extends Page 
{ 
    static at ={ title== "Dispute Home Page"} 

    static content = { 
     displayMsg {$(By.xpath("/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a"))} 
    } 

    def textCompare(){ 
     def message = displayMsg.text() 
     assert (message == 'text pattern') 
    } 

} 
関連する問題