Selenium 处理相等的元素

Selenium deal with equal elements

我正在尝试制作一个连接到网站的程序,然后单击网站上的所有按钮。问题是按钮是 "equal",我的意思是相同的文本,相同的 link 和相同的 css。

考虑以下结构:

<content>
<line1>
    <block1> some text </block1>
    <button> Start! </button>
<line2>
    <block2> some different text </block2>
    <button> Start! </button>
<line3>
    <block3> some text different than 1 and 2 </block3>
    <button> Start! </button>

我怎样才能实现点击所有按钮的功能?我已经尝试用 xpath 找到所有它们,但是一旦我将它们放在列表中,我就无法单击它们,因为我无法设置适当的等待时间,所以什么也没有发生。

尝试使用以下内容: 1)创建列表;将所有按钮放在那里,通过单击每个元素(即按钮)遍历列表。

        List <WebElement> buttonList=  
driver.findElements(By.cssSelector("button"));
        for(int i=0; i<buttonList.size(); i++)
       {
          buttonList.get(i).click();
        }

希望对您有所帮助。

将具有相同属性的所有按钮添加到列表中并迭代 list.I 尝试了这个对我来说效果很好。

List buttons = driver.findElements(By.xpath("//button[text()='button text']"));

        for(int i=0;i<=buttons.size();i++){

        ((WebElement) buttons.get(i)).click();

        }

请告诉我它是否适合你...