Selenium,选项控件的公共方法

选项是大多数页面经常使用到的控件。但是一般的定位方法现需要点击选项、然后等待元素加载出来之后,再点击元素。弹出的选项内容又会由于页面使用的控件类型不同导致定位不准确,报错

所以针对选项控件,能不能提炼出一个方法通吃?

答案是:肯定的。

设计思路:

鼠标点击下拉框后,键盘输入向下方向键,能够定位到第一个元素,点击回车能够选中该元素。

这样就能够解决选项内容还需要单独定位的问题。只需要判断选择的是第几个元素,就可以直接完成选项的操作。

使用到的类:

selenium的类不说了,主要需要使用到ActionChains【鼠标操作类】

使用场景:向方法传下拉选项xpath、选型所在的位置,然后就能够选中这个选项

源码:

from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
def Choose_Element(driver,xpath,number=1):
    """
    :param driver: 别处生成的driver
    :param xpath: 录入xpath
    :param number: 录入需要进行选择的次数,填写数字,例如:1,不填写默认选择第一个
    :return:
    """
    el = driver.find_element(By.XPATH,xpath) # 定位到下啦选项
    ActionChains(driver).click(el).perform() # 对下啦选项进行点击操作
    for i in range(number): # 创建一个for循环,循环次数默认按照number来
        ActionChains(driver).send_keys(Keys.DOWN).perform() # 每读取一次,就点击一个向下按钮
    ActionChains(cls.driver).send_keys(Keys.ENTER).perform() # 执行所有循环后,输入回车

调用方法举例:

Choose_Element(driver,"//*[@id='username']",1)

公共方法使用局限:

1. 选项需要能够与键盘进行操作,如果不支持键盘交互,就完蛋了。目前还没有发现

2. 选择第几个需要由写脚本人员定义好,而且定义的内容可能不确定到底选了什么,需要写好备注

希望这个方法能够对你的自动化编写起到一定的作用~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值