如何点击下一个班级名称?

时间:2018-12-19 07:07:28

标签: java arrays selenium selenium-webdriver arraylist

我具有相同的类<a class="row-title">属性,最多21个Web元素。 我可以使用get text方法获取所有21个元素,但我想执行这样的操作。

  1. 首先,我必须单击XPath driver.findElement(By.xpath(".//*[@id='menu-posts-presentation']/a/div[3]"));
  2. 然后我要点击<a class="row-title">的第一名
  3. 第3步,我也想点击xpath driver.findElement(By.xpath(".//*[@id='publish']")).click();
  4. 然后我必须再次单击步骤1中相同的XPath,然后单击第二个类名而不是第一个,然后再次单击3步骤3中的XPath。
  5. 所以我想将其最多迭代21个类名。

    Test(priority = 2)
    public void myfsk1(){ 
    
        driver.findElement(By.xpath(".//*[@id='menu-posts-presentation']/a/div[3]")).click();
        List<WebElement> elements = driver.findElements(By.className("row-title"));
        System.out.println(elements.size());
    
        for (int i=1;i<=elements.size()-1;i++)
        {
            System.out.println(elements.get(i).getText());
            Reporter.log(elements.get(i).getText());
    
        }
    

1 个答案:

答案 0 :(得分:0)

请不要忘记添加一些断言来检查它是否真的被单击,现在此测试仅单击一些链接,但不检查任何内容。 另外,您还必须添加预期条件,以避免单击未加载的元素。

    Test(priority = 2)
    public void myfsk1 () {
        List<WebElement> elements = driver.findElements(By.className("row-title"));
        int listSize = elements.size();
        System.out.println(listSize);
        WebElement innerElement;

        for (int i = 1; i < listSize; i++) {
            driver.findElement(By.id("menu-posts-presentation"))
                  .findElement(By.xpath("./a/div[3]"))
                  .click();

            // Search again due to page refresh
            elements = driver.findElements(By.className("row-title"));
            innerElement = elements.get(i);

            System.out.println(innerElement.getText());
            Reporter.log(innerElement.getText());
            innerElement.click()

            driver.findElement(By.id("publish").click;
        }
    }