zoukankan      html  css  js  c++  java
  • selenium鼠标操作及下拉框的操作

    1.鼠标操作

    selenium的ActionChains类完成模拟鼠标操作

    #鼠标操作
    from selenium.webdriver.common.action_chains import ActionChains

    支持的操作如下:

    double_click:双击操作

    context_click:右击操作

    drag_and_drop:拖拽操作。左键按住拖动某一个元素到另外一个区域,然后释放按键

    move_to_element():鼠标悬停(重点)

    方法:AC.方法名1().context_click().perform()

    注:当鼠标悬停后,下拉菜单出现。鼠标移动,下拉消失,此时定位下拉框中的元素时先鼠标定位到元素上按快捷键ctrl+shift+c

    2.下拉框的操作

    1)前端页面由div标签和a标签等组成

    2)前端页面由select标签组成:引入Select类

    #select类操作
    from selenium.webdriver.support.ui import Select

    3.举例(百度页面的设置-高级搜索-文档格式)

    def web_mouse_operator(self):
            '''
            鼠标操作:
            1.实例化鼠标类。将鼠标动作存储起来,放在列表中
            2.调用各种鼠标行为
            3.调用perform()方法执行鼠标操作
            下拉框操作(此处下拉框是采用div标签和a标签):
            1.方法一:等待下拉框出现进行元素定位
            2.方法二:可以通过元素下标进行定位操作,此方法用于下拉列表元素很少
            下拉框操作(此处下拉框采用select/option标签):
            1.实例化类
            2.根据select方法中的一种来选择
            :return:
            '''
    
            #找到页面元素
            ele = self.driver.find_element_by_xpath('//div[@id="u1"]//a[text()="设置"]')
            #实例化鼠标对象
            action = ActionChains(self.driver)
            #鼠标移动到该元素上,鼠标悬停,等待下拉框元素可见
            action.move_to_element(ele).perform()
            #下拉框方法一:
             #等待下拉框出现
            WebDriverWait(self.driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
            #下拉框方法二:
             #根据元素的下标进行获取
            WebDriverWait(self.driver,2).until(EC.visibility_of_element_located((By.XPATH,'//div[@class="bdpfmenu"]//a[2]')))
            #点击高级搜索按钮
            self.driver.find_element_by_xpath('//a[text()="高级搜索"]').click()
            time.sleep(10)
            #实例化select类
            select = Select(self.driver.find_element_by_name("ft"))
            #根据下标进行选择
            select.select_by_index(2)
            time.sleep(3)
            #根据value值来进行选择
            select.select_by_value("xls")
            time.sleep(3)
            #根据文本内容来选择
            select.select_by_visible_text("微软 Powerpoint (.ppt)")
            time.sleep(3)
  • 相关阅读:
    C++ for循环遍历几种写法
    Windwos查看本地局域网内所有的ip方法
    c define
    ssh
    Linux的iptables菜鸟初学
    nc命令的用法
    电脑莫名重启,VS代码丢失的解决办法
    string判断是否是正常的ip格式
    机器学习之推荐算法
    Springboot将mybatis替换为mybatis-plus
  • 原文地址:https://www.cnblogs.com/xiaoxiaolvdou/p/9276995.html
Copyright © 2011-2022 走看看