使用Selenium访问data-ri / data-row的特定元素

时间:2016-08-02 19:32:54

标签: java selenium

我在Java中使用Selenium,我正在学习Selenium来运行简单的测试。我正在做的测试是:

  1. 打开Firefox
  2. 打开Goog​​le
  3. 转到图片并搜索Google
  4. 点击第二张图片
  5. 我注意到他们在他们拥有data-ridata-row的div下的谷歌图片,所以例如第一行是data-row=0,第二行是data-ri=1 ,班级为rg_di。如何使用Selenium在Java中编写代码以从图像搜索中获取第二个元素。我在考虑使用Xpath,但我很困惑。

    编辑(忘记发布我以前的代码):

    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();
        }
    

1 个答案:

答案 0 :(得分:0)

此处data-row表示行索引,data-ri表示图像索引,其中两者都以0索引开头,您只需通过By.cssSelector()找到确切的图像即可data-ri图片的属性索引,如果你想要第二张图片,你应该简单地使用如下: -

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

注意: - 如果您想要其他图片,请更改您想要的imageIndex