Selenium UI 操作总结



Selenium UI 操作总结。

*************************************

1 下拉框的操作方法

1 选取下拉框中的某个值

1)

driver.select(by, value) :

driver.select(By.id(“SelectName”), “aimvalue”) :首先通过by方法定位下拉框位置,然后设置目标值。

2)

使用select类

public void selectColumnName(){

Select sec = new Select(driver.findElement(By.id(“SelectName”)));

sec.selectByVisibleText(“aimvalue”);

}

*************************************

2 获取WebElements

public void getElementsList()

{

  private Vector<Select> selects = new Vector<Select>();

  private List<Select> selects1 = new ArrayList<Select>();

  List<WebElement> elements = driver.findElements(By.xpath(“//…”)); //获取一组元素

  WebElement ele = driver.findElement(By.xpath(“//…”)); //获取单个元素

  //将元素存入list 或者 vector中

  for(WebElement ele : elements)

  {

      selects.add(new Select(ele));

  }

  //Select test = new Select(elements.get(0)); 

}

*************************************

3 Table 的处理方法

UI table :

Selenium <wbr>UI <wbr>操作总结
Table scripts:

Selenium <wbr>UI <wbr>操作总结

1)获取某行的值

   public List<String> getRowData(int row)

  {

     String css = “//tbody.tableBody>tr.equals(“+row+”)”;

     List<WebElement> elements = driver.fineElements(By.cssSetector(css));

     List<String> results =  new ArrayList<String>();

     for(WebElement ele:elements)

     {

        results.add(ele.getText());//讲行中各元素的text值取出,存入list中。

     }

     return results; 

  }

2)获取某列的值

  a)取出header对应的列

  b)取出某一列的所有数据

  //该函数用于取出table的所有header的column,并存入数据中返回。

  public String[] getColumnArray()

  {


     String css = “//table.tableRegion td.tableHeader”;

     //取出table的各个header的名字

     List<String> elements = driver.findElements(By.cssSetector(css));

     String[] results = new String[elements.size()];

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

     {

         // 取出list中的第i个element的Text值存入数据中

         results[i] = elements.get(i).getText();  

      }

      return results; 

  }

 

  //取出某列的所有值

  public String[] getColumnData(String columnName)

  {

      //首先需要获取columnname对应的id(index)

      String[] columns = getColumnArray();

      //将column的值存入man中,这样便可根据columnname 取得column对应的index

      HashMap<String,Integer> columndef = new HashMap<String,Integer>();

      for(int i=0; i<columns.length;i++)

      {

           columndef.put(column[i],i);

       }

       int index = columndef.get(columnName);

       index++;

       //取得列值

       String css = “//tbody.tableBody td:nth-child(“+index+”)”;

       List<WebElement> elements = driver.findElements(By.cssSetector(css));

       String[] results = new String[elements.sizi()];

       int i=0;

       for(WebElement e:elements)

       {

           results[i] = e.getText();

           i++;

       }

        return results;

   }

3)获取某行某列交集的值

public String[] getColumnData(int row, String columnName)

{
    String[] columns = getColumnArray();
    for(int i =0;i<columns.length;i++)
    {
       columnDef.put(columns[i], i);
     }
    int index=columnDef.get(columnName);

    //通常一个table的第一行是表头,第二行才是具体的值,selenium识别行列从1开始数的,不是0.所以一个table的第1行第1列的值应该是://table[@class='myTable']/tbody/tr[2]/td[1]

    //所以此处index 要做++操作
    index++;
 
    String path=”//table[@id='updateFeedbackTable_table']//tr["+row+"]//td["+index+"]“;
    List<WebElement> eles = action.findElements(By.xpath(path));
    String[] results = new String[eles.size()];
    int i=0;
    for(WebElement ele:eles)

    {
       results[i]=ele.getText();
       i++;
    }
    return results;  
}

4)获取单元格的值

Selenium <wbr>UI <wbr>操作总结

public String getColumnInformation(Integer line, String column) {

 Integer i = getColumnsMap().get(column);
 String s = “tbody.tableBody>tr:nth(” + line + “)>td:nth(” + i
   + “)>input”;
 if (column.equals(“ITEM_DESCRIPTION”) || column.equals(“ITEM_NBR”)) {
  s = “tbody.tableBody>tr:nth(” + line + “)>td:nth(” + i + “)>input”;
 }
 WebElement we = action.findElement(By.cssSelector(s));

 //取得input的属性value的值110。
 String value =we.getAttribute(“value”);
 //we.getCssValue(“value”);
 return value;
}