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()
  • 相关阅读:
    LeetCode 226. Invert Binary Tree
    LeetCode 221. Maximal Square
    LeetCode 217. Contains Duplicate
    LeetCode 206. Reverse Linked List
    LeetCode 213. House Robber II
    LeetCode 198. House Robber
    LeetCode 188. Best Time to Buy and Sell Stock IV (stock problem)
    LeetCode 171. Excel Sheet Column Number
    LeetCode 169. Majority Element
    运维工程师常见面试题
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12505680.html
Copyright © 2011-2022 走看看