zoukankan      html  css  js  c++  java
  • selenium自动化鼠标操作及下拉列表

    鼠标操作

    鼠标操作类:ActionChains 模拟鼠标操作

    from selenium.webdriver.common.action_chains import ActionChains

    鼠标动作:动作放在一个动作列表中,动作一定要有执行(perform())要不不会执行

         双击:double_click()

         单击:click()

         右击:context_click()

         悬浮:mover_to_element() **重点

         按住鼠标的左键:click_and_hold  释放:release

         拖拽:drag_and_drop(传两个参数)

         执行动作:perform()

         暂停:pause(单位秒)

    from selenium import webdriver
    import time
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    # 鼠标
    from selenium.webdriver.common.action_chains import ActionChains
    
    driver = webdriver.Chrome()
    driver.maximize_window()  # 最大化浏览器
    driver.get("file:///E:/WebWebpageTest/page.html")
    
    # 悬浮的元素 //button[text()="注册用户"]
    # 1、实例化 ActionChains 类
    ac = ActionChains(driver)
    # 2、添加鼠标动作:调用对应的鼠标动作函数
    ele = driver.find_element_by_xpath('//select[@id="select"]')
    ac.move_to_element(ele).click(ele)  # 悬浮并点击,鼠标类可以链条式的操作,因为它返回的是自己本身
    ac.double_click(ele)  # 双击
    # 3、执行鼠标动作:perform()
    ac.perform()
    
    # 下拉列表:1、触发下拉列表出现,2、等地你要操作的元素可见,3、选择你要操作的元素
    loc = (By.XPATH, '//select[@id="select"]//option[@value="sh"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
    driver.find_element(*loc).click()
    
    driver.quit()

    下拉列表

    select / option 类型的下拉列表,有专门的 Select 类处理

    引入类:from selenium.webdriver.support.select import Select

    初始化:参数是一个select 元素对象

    标签名必须为:select

    from selenium import webdriver
    import time
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    # 下拉操作
    from selenium.webdriver.support.select import Select
    
    driver = webdriver.Chrome()
    driver.maximize_window()  # 最大化浏览器
    driver.get("file:///E:/WebWebpageTest/page.html")
    
    # 等待元素出现
    loc = (By.XPATH, '//select[@id="select"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
    
    # 下拉列表:1、触发下拉列表出现,2、等地你要操作的元素可见,3、选择你要操作的元素
    # 1、初始化:参数必须是一个select元素对象
    select_ele = driver.find_element_by_xpath('//select[@id="select"]')
    s = Select(select_ele)
    
    # 2、选择下拉列表中的值:1、value属性,2、下标,从零开始,3、文本定位
    # 通过value属性
    s.select_by_value('sh')
    time.sleep(2)
    # 通过下标
    s.select_by_index(2)
    time.sleep(2)
    # 通过文本
    s.select_by_visible_text('重庆')
    time.sleep(2)
    
    driver.quit()
  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12505680.html
Copyright © 2011-2022 走看看