2017-08-22 7 views
0

現在、あるメソッド内にフィールドのテキスト値を格納しようとしていますが、別のメソッドを使ってアサートしています。ここでSelenium Webdriverテキストの格納とアサート

は、私はしかし、私は、その後に方法を見つけるのに苦労しています...(これは正常にコンソールに取り組んで印刷された)テキストを格納している

protected void selectLeadPassenger(String name) throws Throwable { 
    moveToElement("lead-dropdown-complete", name); 
    waitForElementToBeVisible("#lead-dropdown-complete > div > ul > li:nth-child(1) > div > h3"); 
    String leadPassengerName = driver.findElement(By.xpath("//h3[contains(@text(), " + name + ")]")).getText(); //THIS IS THE FIELD I AM STORING 
    System.out.print(leadPassengerName); //THIS IS PRINTING OUT THE CORRECT VALUE WITHIN THE CONSOLE 
    driver.findElement(By.xpath("//h3[contains(@text(), " + name + ")]")).click(); 
    System.out.println(name + " searched for and selected within the 'LEAD PASSENGER' field"); 
} 

を使用している方法であり、例えば、私は次のことを試してみた、に対して主張する別の方法内で使用する「leadPassengerName」...

protected void validateLeadPassengerName() throws Throwable { 
    String checkText = driver.findElement(By.xpath("//p[contains(@data-bind, 'vm.LeadPassengerName')]")).getText(); 
    Assert.assertTrue("", checkText.contains(leadPassengerName)); 
} 

私は問題は内ので、私は「leadPassengerName」を格納しています方法である確信していますvalidateLeadPassengerNameメソッドは赤で、次のエラーメッセージ "caシンボリックリンク 'leadPassengerName'を解決できません。

+0

[*ブログ投稿を書くの目標は、雑音や混乱を最小限に抑えて他の人に有用な情報を提供することです] (https://meta.stackexchange.com/questions/115694/why-is-saying-tハンクあなたの質問 - 望ましくない)、あなたの署名を削除してください/ありがとう/ありがとうございます。それは、SOにようこそ。 – Kanak

答えて

2

問題を解決する方法は複数あります。まず第一に、それはセレンとは何の関係もありません、それはまた、あなたはドライバー間で共有を持っているようなあなたの機能

String leadPassengerName = driver.findElement(By.xpath("//h3[contains(@text(), " + name + ")]")).getText(); 
validateLeadPassengerName(leadPassengerName) 

を呼び出すことができるとき

protected string validateLeadPassengerName(string leadPassengerName) throws Throwable { 
    String checkText = driver.findElement(By.xpath("//p[contains(@data-bind, 'vm.LeadPassengerName')]")).getText(); 
    Assert.assertTrue("", checkText.contains(leadPassengerName)); 
    return checkText; 
} 

だから、プログラミング言語でのデータの流れについての詳細をですあなたはクラスレベルで変数を作成することによって、先行旅客名を格納するために同じことをすることができます

+0

ありがとう、私が追加する唯一のことは、StringPassengerNameをグローバルクラスとして配置しなければならないということです。次に、私のメソッド内でleadPassengerName =という名前を付けました。 – Danny

+0

はい、別の方法でそれを解決します。あなたはどの習慣が練習であり、どちらが練習ではないかを知るべきです。 –

関連する問題