Junit - 使用for循环迭代web元素

时间:2013-04-26 12:33:59

标签: junit webdriver

我正在学习使用WedDriver。我找到了这个例子来演示如何使用findElements(by)方法。该例子使用for循环在网页上找到搜索框。有人可以解释它是如何工作的,并将它与常规的循环使用进行比较吗?谢谢你的帮助。如果你可以通过使用for循环遍历web元素来为我提供一些教程示例,这将有助于我的理解。谢谢!

通过常规循环我的意思

for (int i = 0; i<=10; i++){
      System.out.println(i);
 } 



for(WebElement ele: elements){
                ele.sendKeys("hexbytes");
            }

以下是来自网络的代码示例:

import java.util.List;

import org.junit.Test;
import org.junit.Before;
import org.junit.After;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WD_findElements 
{
    @Test
    public void test_byid() 
    {
      /**
        * Identifying elements by Id
        * Example: Identify search boxes with id and fill them with some text
        */
        WebDriver driver = new FirefoxDriver();

        try
        {
            driver.get("http://www.hexbytes.com");

            //Identify the search boxes in the pages
            List<WebElement> elements = driver.findElements(By.id("s"));

            //display number of elements
            System.out.print("Number of search elements: "+ elements.size());

            for(WebElement ele: elements){
                ele.sendKeys("hexbytes");
            }
        }

        finally{
            driver.close();
        }

    }//end of test_by_id method

}

1 个答案:

答案 0 :(得分:1)

这个for循环只是迭代列表的另一种方式。 它或多或少等同于

for (int i = 0; i<=elements.size(); i++){
     WebElement ele = elements.get(i);
     ....
}

Here你有更多的例子。