Selenium处理常见web控件-table

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium处理常见web控件-table相关的知识,希望对你有一定的参考价值。

参考技术A Selenium没有提供table的处理方法,只有根据需要自己编写脚本。主要思路是通过xpath下标和css selector层级的方式,通过循环实现根据行列取数据,根据数据判断所在的行列。
一个简单的table示例:

大致是这样一个表格:

现在表格可能会加多种样式等情况,需要根据实际测试的页面表格情况灵活调整。
再封装一下,封装成一个类:

Python+selenium+eclipse执行web自动化控件处理

元素定位后可根据页面元素的类型执行相关操作,一下使用element指代已定位的页面元素

1、输入框

包括文本输入框和密码输入框,可用操作有clear()和send_keys(),具体用法如下

element.clear()                     #清空输入框当前内容
element.send_keys("string")           #项输入框发送字符串

2、单选框及复选框

可用操作有is_select()和click(),具体用法如下
element.is_selected()                #判断当前选择控件是否被选中

element.click()                  #单击选择当前控件

3、按钮

可用操作有get_attribute()和click(),具体用法如下

element.get_attribute("string")           #根据输入的字符串查找相关属性

element.click()                    #单击插件

4、列表

列表控件需要导入Select模块,代码如下

from selenium.webdriver.support.select import Select
具体操作如下

Select(element).select_by_value("value")              #根据value值选择选项,具体value值为"value",根据需要自行输入

Select(element).select_by_index("index")             #根据index值选择选项,具体index值为"index",根据需要自行输入

Select(element).select_by_visible_text("text")   #根据visible_text选择选项,具体visible_text的值为"text",根据需要自行输入 

5、弹出窗口

1)、如果弹出窗口为单选窗口,可以通过ActionChains控件发送键盘事件,完成操作。具体操作如下

from selenium.webdriver.common.action_chains import ActionChains     #导入ActionChains模块

browser1=webdriver.Firefox()
browser1.get("www.xxxx.com")

ActionChains(browser1).send_keys(Keys.ENTER).perform()                  #在browser界面发送ENTER按键

2)、如果弹出窗口为多选框,则需要通过switch_to_frame("framename")操作切换到弹出窗主体,然后再对需要的控件进行相关操作

 

以上是关于Selenium处理常见web控件-table的主要内容,如果未能解决你的问题,请参考以下文章

Python+selenium+eclipse执行web自动化控件处理

Selenium 日期控件处理

selenium - js日历控件处理

Python+selenium+eclipse执行web自动化特殊控件--进度条

基于python实现UI自动化3.4 JS 处理日历控件(删除 readonly 属性)

Selenium2学习(十七)-- js处理日历控件(修改readonly属性)