页面元素定位方法---表格定位
1. 遍历表格所有单元格
被测试网页table1.html所有单元格
1 <html>
2 <body>
3 <table width="400" border="1" id="table">
4 <tr>
5 <td align="left">图书购买清单</th>
6 <td align="right">一月</th>
7 <td align="right">二月</th>
8 </tr>
9 <tr>
10 <td align="left">python</td>
11 <td align="right">180元</td>
12 <td align="right">200元</td>
13 </tr>
14 <tr>
15 <td align="left">Oracle</td>
16 <td align="right">290元</td>
17 <td align="right">150元</td>
18 </tr>
19 <tr>
20 <td align="left">Selenium自动化测试</td>
21 <td align="right">300元</td>
22 <td align="right">260元</td>
23 </tr>
24 <tr>
25 <td align="left">LoadRunner</td>
26 <td align="right">160元</td>
27 <td align="right">140元</td>
28 </tr>
29 <tr>
30 <td align="left">总计</th>
31 <td align="right">930元</th>
32 <td align="right">750元</th>
33 </tr>
34 </table>
35 </body>
36 </html>
被测试内容展示如下:
实例代码逻辑:
-
先获取整个表格的页面对象
-
在表格页面元素对象中,获取所有的tr元素对象,并存储在trList对象中。
-
循环遍历存储表格行对象的trList对象,每获取一行中所有的单元格对象(存储在tdList对象中),就循环遍历一次,并将每个单元格的文本内容输出。
Python实例代码:
#encoding=utf-8
from selenium import webdriver
driver=webdriver.Ie()
driver.get("http://127.0.0.1/table1.html")
#通过id定位方式获取整个表格对象
table=driver.find_element_by_id("table")
# print type(table)
#通过标签名获取表格中的所有行对象
trList=table.find_elements_by_tag_name("tr")
#断言获取的表格行数是否等于预期
assert len(trList)==6,"表格行数不符!"
# 遍历表格行对象
for row in trList:
# 获取每一行中所有列对象
tdList=row.find_elements_by_tag_name("td")
#遍历表格列对象
for col in tdList:
#获取单元格的文本内容
print col.text + "\t",
print
driver.quit()
2. 定位表格中的某个元素
基于被测试网页table1.html代码测试
Python实例代码:
#encoding=utf-8
from selenium import webdriver
driver=webdriver.Ie()
driver.get("http://127.0.0.1/table1.html")
#获取表格的第二行第二列单元格内容
cell=driver.find_element_by_xpath("//*[@id='table']/tbody/tr[2]/td[2]")
print cell.text
#获取表格的第五行第一列单元格内容
cell=driver.find_element_by_xpath("//*[@id='table']/tbody/tr[5]/td[1]")
print cell.text
driver.quit()
3. 定位表格中的子元素
测试代码:
1 <html>
2 <body>
3 <table width="700" border="1" id="table">
4 <tr>
5 <td align="left">图书购买清单</th>
6 <td align="right">一月</th>
7 <td align="right">二月</th>
8 </tr>
9 <tr>
10 <td align="left">python:
11 <input type='checkbox'>python开发入门教程</input>
12 <input type='checkbox'>python开发高级篇</input>
13 </td>
14 <td align="right" >180元</td>
15 <td align="right" >200元</td>
16 </tr>
17 <tr>
18 <td align="left">Selenium:
19 <input type='checkbox'>selenium单元测试框架</input>
20 <input type='checkbox'>selenium接口测试框架</input>
21 </td>
22 <td align="right">300元</td>
23 <td align="right">260元</td>
24 </tr>
25 <tr>
26 <td align="left">LoadRunner:
27 <input type='radio'>selenium单元测试框架</input>
28 <input type='radio'>selenium接口测试框架</input>
29 </td>
30 <td align="right">160元</td>
31 <td align="right">140元</td>
32 </tr>
33 <tr>
34 <td align="left">总计</th>
35 <td align="right">640元</th>
36 <td align