• 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()
  • 相关阅读:
    Spring通过springframework.data的@PageableDefault注解分页
    Specifications动态查询
    IDEA生成序列号serialVersionUID快捷键
    JS组件系列——表格组件神器:bootstrap table(还没细看)
    南昌网络赛 Distance on the tree(可持久化线段树)
    南昌网络赛 Max answer(单调栈)
    HDU 6148 Valley Numer(数位DP)
    python 二位dict
    Codeforces Round #230 (Div. 2) 题解
    Codeforces Round #228 (Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12505680.html
Copyright © 2020-2023  润新知