• (四)selenium 元素_鼠标_键盘_下拉框 等操作方法


    一、常用方法介绍

    基础方法

    方法 作用
    click() 单击元素,点一下放开
    send_keys (value) 模拟按键输入。
    clear() 清除文本
    submit() 提交表单。 例如, 在搜索框输入关键字之后的“回车” 操作, 就可以通过该方法模拟,有时候 submit()可以与 click()方法互换来使用, submit()同样可以提交一个按钮, 但 submit()的应用范围远不及 click()广泛。

    元素判断

    方法 作用
    get_attribute(name) 获得属性值。
    is_enabled() 判断一个元素是否可以操作 是:True ,否:False
    is_selected() 判断元素是否被选中
    is_displayed() 元素是否用户可见

    鼠标事件

    在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。

    方法 作用
    context_click() 右击
    double_click() 双击
    drag_and_drop(source, target) 鼠标拖动,
    move_to_element() 鼠标悬停
    perform() 执行所有 ActionChains 中存储的行为

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from time import sleep
    
    
    
    # 启动浏览器
    driver = webdriver.Chrome(executable_path="D:\drivers\chromedriver.exe")
    
    # 打开百度网页
    driver.get("http://www.baidu.com/")
    
    driver.maximize_window()
    
    driver.find_element_by_css_selector("#kw").send_keys("python")
    
    element = driver.find_element_by_css_selector("#kw")
    sleep(3)
    
    # 双击操作
    ActionChains(driver).double_click(element).perform()
    
    sleep(3)
    # 右击操作
    ActionChains(driver).context_click(element).perform()
    
    sleep(3)
    
    # 鼠标悬停
    above = driver.find_element_by_css_selector(".pf")
    ActionChains(driver).move_to_element(above).perform()
    
    
    sleep(4)
    driver.quit()
    

    键盘事件

    Keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。

    方法 作用
    send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
    send_keys(Keys.SPACE) 空格键(Space)
    send_keys(Keys.TAB) 制表键(Tab)
    send_keys(Keys.ESCAPE) 回退键(Esc)
    send_keys(Keys.ENTER) 回车键(Enter)
    send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
    send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
    send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
    send_keys(Keys.F1) 键盘 F1
    send_keys(Keys.F..) 键盘 F..
    send_keys(Keys.F12) 键盘 F12

    使用

    from selenium import webdriver
    # 引入 Keys 模块
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    
    # 输入框输入内容
    driver.find_element_by_id("kw").send_keys("seleniumm")
    
    # 删除多输入的一个 m
    driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
    
    
    # 输入空格键+“教程”
    driver.find_element_by_id("kw").send_keys(Keys.SPACE)
    driver.find_element_by_id("kw").send_keys("教程")
    
    # ctrl+a 全选输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
    
    # ctrl+x 剪切输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
    
    # ctrl+v 粘贴内容到输入框
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
    
    # 通过回车键来代替单击操作
    driver.find_element_by_id("su").send_keys(Keys.ENTER)
    driver.quit()
    
    

    下拉框选择

    当我们遇到下拉框元素select类型时 ,我们需要用到Select对象来操作
    Select 对象地址

    from selenium.webdriver.support.ui import Select
    

    Select对象使用
    创建对象

    element = driver.find_element_by_id("sel")
    select=Select(element)
    

    选择选项值

    方法 作用
    select.select_by_index(index) 根据索引选择
    select.select_by_value(value) 根据value值选择
    select.select_by_visible_text(text) 根据文本信息选择

    取消选项选择,仅用于复选下拉框

    方法 作用
    select.deselect_all() 取消全部选择项
    select.deselect_by_index() 根据索引取消某一项
    select.deselect_by_value() 根据value值取消某一项
    select.deselect_by_visible_text() 根据文本信息取消

    获取信息

    方法 作用
    select.first_selected_option 获取第一个被选中项
    select.all_selected_options 获取所有的选中项
    select.options 获取所有选项
    select.is_multiple 是否多选下拉框
  • 相关阅读:
    【docker报错】starting container process caused "exec: "-P8080:8080": executable file not found in $PATH".
    java调用openoffice踩坑集
    SWERC 2019-2020 题解(全)
    【GYM102091】2018-2019 ACM-ICPC, Asia Nakhon Pathom Regional Contest F
    UVA10615 Rooks 二分图的边着色
    2020.07.20 牛客多校第四场
    2020.07.27 牛客多校第六场
    2020.07.18 牛客多校第三场
    Deepfake Video Detection Using Recurrent Neural Networks 阅读笔记
    网易互娱 8.7笔试 代码记录
  • 原文地址:https://www.cnblogs.com/niunai/p/15091411.html
Copyright © 2020-2023  润新知