2016-08-02 26 views
0

私はJavaでSeleniumを使用していますが、私はSeleniumを学んで簡単なテストを実行しています。私がやっているテストは、以下のとおりです。画像のSeleniumを使ってdata-ri/data-rowの特定の要素にアクセスする

  1. Firefoxを開き
  2. オープングーグル
  3. 行くとGoogle
  4. は、私は彼らが持っているGoogleの画像に気づいた第二の画像

をクリックして検索しますdivの下にはdata-ridata-rowがあるので、たとえば最初の行はdata-row=0であり、2番目の要素はdata-ri=1であり、クラスはです。イメージ検索から2番目の要素を取得するには、どのようにJavaでSeleniumを使用してコードを記述しますか?私はXpathを使うことを考えていましたが、混乱しました。

EDITは(私が前に持っていたコードを投稿すること忘れた):ここでは

public static void main(String[] args) { 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("http://google.ca"); 

     System.out.println("Page title: " + driver.getTitle()); 
     String title = driver.getTitle(); 

     driver.manage().window().maximize(); 
     Assert.assertTrue(title.contains("Google")); 
     Assert.assertFalse(title.contains("Yahoo")); 


     driver.findElement(By.linkText("Images")).click(); 
     driver.findElement(By.id("lst-ib")).sendKeys("google"); 
     driver.findElement(By.id("sblsbb")).click(); 

     driver.findElement(By.className("rg_l")).click(); 
    } 
+2

これまでに試したコードを最初に共有できますか? –

+0

これまでのコードは? SOはコード作成サービスではありません。 – techydesigner

答えて

0

data-rowは、行のインデックスを表し、data-riは両方0インデックスで始まるされている画像のインデックスを表し、あなたは、単に正確な画像を見つけることができますあなたは第二の画像をしたい場合、あなたは以下のように簡単な使用がすべきあなたの場合のように、画像のdata-ri属性インデックスを渡すことによってBy.cssSelector()を使用して: -

String imageIndex = "1"; 
WebElement image = driver.findElement(By.cssSelector("div[data-ri = '" + imageIndex + "'] img")); 

: - 他の画像を変更したい場合は、imageIndexを変更してください。

+0

cssSelectorでhtmlタグを使用できますか?編集:ああ私はあなたのfindElementコードの後に​​.click()を置くことを忘れたと思います。 – Nabz

+0

@Nabzはい、あなたは 'cssSelector'にHTMLタグを使うことができます。私はclick()を置くのを忘れてしまっただけです。:) –

+0

@Nabz後で' image.click() 'を使うことができます。正常に画像を見つける.. :) –

関連する問題