13、Selenium + Python 实现 UI 自动化测试-操作表格

一、看下表格元素

一个table 对应一个表格,一个tr 对应一行,tr下面的td对应单元格



二、如果只是想取某个单元格中的值,像定位普通元素一样定位单元格即可

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/tableTest.htm')
ele = driver.find_element_by_xpath('/html/body/table[1]/tbody/tr[1]/td[1]')
print(ele.text)

driver.quit()


三、假如想打印表格所有值呢?

思路:
1、先定位页面中表格对象元素
2、在该表格中,通过tag name = ‘tr’ 找所有行
3、在第一行中,通过tag name = ‘td’ 找所有列

现在,有木有觉得find_elements_by_tag_name 很有用!

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/tableTest.htm')
table = driver.find_element_by_xpath('/html/body/table[1]')
rows = table.find_elements_by_tag_name('tr')
cols = rows[0].find_elements_by_tag_name('td')

for i in range(len(rows)):
    for j in range(len(cols)):
        cell = rows[i].find_elements_by_tag_name('td')[j]
        print(cell.text)

driver.quit()


四、总结

1、操作表格这类有规律的元素,使用 tag name。

2、通过xpath,可以取到行数,和某行对应的列数,但是循环取单元格不好实现

rows1 = driver.find_elements_by_xpath('/html/body/table[1]/tbody/tr')
cols1 = driver.find_elements_by_xpath('/html/body/table[1]/tbody/tr[1]/td')
3、操作表格当中某个单元格本身和操作某一元素并无不同,你可以使用id、name、xpath等方式去定位;只不过这些单元格组合在一起成了一个表格,这些单元格在表格中是按照一定规律存放的。


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值