Web自动化测试中选择Div下拉列表

前言

最近在做公司的一个产品的前端自动化工作,所用到的框架是Python+Selenium(ps:感觉自己应该抽空的时候去学一学Java,看到网站上招聘信息对于自动化测试这块还语言要求基本上都是Java或者Python,反正技多不压身~)

相关资料

我采用的是PageObject设计模式,这种设计模式的特点就是对一个网页的界面元素进行封装。元素包括界面按钮,下拉框,输入框,树等(界面能点击输入的元素),封装的方法有点击事件,输入事件。定位元素方法和操作元素方法分离开,元素定位全部放一起,每一个操作元素动作写成一个方法,具体文章在https://blog.csdn.net/caoliu1024cl/article/details/77622492 中 4.12 PageObject设计模式章节中有详细说明。

本次主要是遇到了下拉列表选择问题

大部分selenium 对下拉列表的操作基本上都是使用Select 对象,可是该对象只能识别网页中的select标签,不能对Div的标签进行操作。
在这里插入图片描述
就比如上面我项目中遇到的情况,该下拉列表并没有select 属性,因此我选择用模拟键盘“上”,“下”键进行封装。

使用到的库与方法

// An highlighted block
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

Keys为键盘对应字符表
ActionChains 类提供对鼠标,键盘的操作方法

使用到的方法
perform() ——执行链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素

附上代码

// An highlighted block
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
def select_by_index(self,locator,index = 1):        
     '''通过index选择下拉框'''
     _element = self.find_element(locator)
     #先点击元素   
     self.click(locator = locator)  
     #通过快捷键发送元素  
     for _i in range(index):  
         ActionChains(self.webdriver).send_keys(Keys.DOWN).perform() 
     ActionChains(self.webdriver).send_keys(Keys.ENTER).perform()

这里应该也可以使用send_keys_to_element 方法, 以后有时间在来调试一下~

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

To be TestHacker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值