2016-04-04 5 views
0

右側に2つのリンクがあるナビゲーションバーがあります。リンクの1つをクリックすると、それぞれのページに移動し、リンクが強調表示されます。私は、これが私の自動化テストを実行しているときであることを確認したい。これをやり遂げるにはどうすればいいですか?セレンを使用してリンクが有効であることを確認する方法

次は私がこれを実行すると、テストはこの約行くための正しい方法であれば、私はわからないんだけど、次のエラー

java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86) 
at org.junit.Assert.assertTrue(Assert.java:41) 
at org.junit.Assert.assertTrue(Assert.java:52) 

で失敗

@Test 
public void testProductNavBar(){ 
    assertTrue(driver.findElement(By.xpath("/html/body/nav[2]/div/div/ul/li[1]/a")).isSelected()); 
} 

私のJavaコードでありますこの。私はまだこれに新しいので、どんな助けも大歓迎です!

答えて

0

を表示するかどうかを 私は、これは私が望むように動作するように得ることができました。以下に示すように.isEnabled()オプションを使用しました。

@Test 
public void testProductNavBar(){ 
    assertTrue(driver.findElement(By.xpath("/html/body/nav[2]/div/div/ul/li[1]/a")).isEnabled()); 
} 
1

どのようにリンクが強調表示されるかによって異なります。これはおそらくCSSクラスを介しています。リンクを調べる(右クリックすると、あなたのブラウザはそれを調べることができます)、そのCSSと他のリンクのCSSを比較します。

、あなたは擬似コードです

assertTrue(driver.findElement(By.id(ID_OF_LINK)).getAttribute("class").contains("active")); 

ような何かをするだろう、違いは「アクティブ」と呼ばれるクラスであると仮定すると。あなたの言語/ webdriverはWebElement上のCSSクラスをチェックする良い方法を持っているかもしれません。

(余談:あなたは、あなたのテストはと対話したいすべてがIDを持っている必要があり、それにIDを置くか、それを行うために、ページの作成者に問い合わせてください)

+0

私はbootstrap.cssからアクティブなcss属性クラスを使用しています。私はまだこれを行うことはできますか? –

0

私は​​はあなたのケースでは動作しないと思います。 ハイライトUIを確認するには、@ Paul Hicksの回答 を実行することができます。より堅牢なテストを行うには、ページが正しく読み込まれるかどうかをURLで確認できます。

クリック後、ページの読み込みに時間がかかるのを待ってから、現在開かれているURLをdriver.getCurrentUrl()で確認して比較することができます。 ことがHttp response

+0

さて、私はそれを試みました。私は実際には、ページ上にクリックされたリンクが強調表示されていることを確認したいだけです。 –

-1

こんにちはミシェルアシュビニーは、リンクを使用して、サンプルコードの下に使用することができセレンは

Use selenium's isDisplayed() 

を説明することを行うために使用してアクティブであることを確認するために参照するためにあなたも、HTTP応答を確認することができます。 はこれです要素が表示されるかどうかこのメソッドは、要素の「スタイル」属性を解析する必要がないという問題を回避します。 戻り値:要素が

System.setProperty("webdriver.chrome.driver", "D:\\eclipseProject\\####\\src\\com\\smokealignstar\\chromedriver_win32 (1)\\chromedriver.exe"); 
     driver = new ChromeDriver(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     driver.get("your URL"); 
     try{ 
      // below line will return true only if link represented by below line is active and working 
      // otherwise false (if link is not valid or broken) 
      driver.findElement(By.xpath("/html/body/nav[2]/div/div/ul/li[1]/a")).isDisplayed(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
+0

@ユーザーがstatckoverflowを使用していると思われる場合は、ユーザーが指定した回答が役に立たないと思う場合は、必ず投票をしてください。理由を教えてください。 –

関連する問題