首页 > 技术文章 > selenium webdriver 表格的定位方法练习

linbo3168 2016-11-22 18:46 原文

 

selenium webdriver 表格的定位方法

html 数据准备

<html>
<body>

<div id="div1">
<input name="divl1input"></input>
<a href="http://www.sogou.com/">搜狗搜索</a>
<img alt="div1-img1 "src="http://www.sogou.com/images/logo/new/sogou.png"
href = "http://www.sogou.com">搜狗图片</img>
<input type ="button" value="查询"></input>
</div>
<br></br>
<div name="div2">
<input name="div2input"></input>
<a  href = "http://www.baidu.com">百度搜索</a>
<img alt="div2-img2" src="http://www.baidu.com/img/bdlogo.png" 
href= "http://www.baidu.com">百度图片</img>
<input type="button" value="查询"></input>
</div>

<br></br>
<br></br>
<br></br>
<br></br>
<a href="http://www.sogou.com"> 搜狗搜索</a><br></br>
<a href="http://www.baidu.com"> 百度搜索</a>


<br></br>
<br></br>
<br></br>
<br></br>

<table width="400" border="1" id= "table">
<tr>
<td align="left" >消费项目。。。。</td>
<td align="right"> one  month </td>
<td align="right">two  month</td>
</tr>


<tr>
<td align="left" >衣服</td>
<td align="right"> 1000 元 </td>
<td align="right">2000 元</td>
</tr>

<tr>
<td align="left" >化妆品</td>
<td align="right"> 10 元 </td>
<td align="right">20 元</td>
</tr>


<tr>
<td align="left" >零食</td>
<td align="right"> 120 元   </td>
<td align="right">100 元  </td>
</tr>


<tr>
<td align="left" >总计</td>
<td align="right">88880 元 </td>
<td align="right">10000  元</td>
</tr>




</table>
</body>
</html>


java代码 :

package page_elements_positioning;

import java.util.List;

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

public class Table_Positiing {
    
    public static void main(String[] args) {
        String url ="file:///C:/Users/ty/Desktop/selenium_test.html";
        System.setProperty("webdriver.firefox.bin", "D:\\softerWare\\firefox\\firefox\\firefox.exe");
        WebDriver driver ;
        driver = new FirefoxDriver();
        driver.get(url);
        
        
    WebElement table =driver.findElement(By.id("table"));
 List<WebElement> rows =  table.findElements(By.tagName("tr"));
 for (WebElement row  : rows ){
     
     List<WebElement> cols =row.findElements(By.tagName("td"));
     for(WebElement col :cols ){
         System.out.print(col.getText()+"\t");
     }
     System.out.println("");

 }
 
 System.out.println("-----------------------------------------------------------------------");
 
 //注意" //*[@id='table']/tbody/td[1]/tr[1]"---- /tbody 是必须要加的
    WebElement element =driver.findElement(By.xpath("//*[@id='table']/tbody/tr[2]/td[3]"));
//---去掉 *  号 !    
    WebElement element1 =driver.findElement(By.xpath("//*[@id='table']/tbody/tr[3]/td[3]"));
    System.out.println("//*[@id='table']/tbody/tr[2]/td[3]----"+element.getText());
    System.out.println("//[@id='table']/tbody/tr[3]/td[3]---"+element1.getText());
    
    }

}

 

测试结果:

消费项目。。。。 one month two month 
衣服 1000 元 2000 元 
化妆品 10 元 20 元 
零食 120 元 100 元 
总计 88880 元 10000 元 
-----------------------------------------------------------------------
//*[@id='table']/tbody/tr[2]/td[3] -----2000 元
//[@id='table']/tbody/tr[3]/td[3]-------20 元

 

推荐阅读