zoukankan      html  css  js  c++  java
  • [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍

    一. 定位元素方法

            官网地址:http://selenium-python.readthedocs.org/locating-elements.html
            这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素:

    • find_element_by_id
    • find_element_by_name
    • find_element_by_xpath
    • find_element_by_link_text
    • find_element_by_partial_link_text
    • find_element_by_tag_name
    • find_element_by_class_name
    • find_element_by_css_selector

            下面是查找多个元素(这些方法将返回一个列表):

    • find_elements_by_name
    • find_elements_by_xpath
    • find_elements_by_link_text
    • find_elements_by_partial_link_text
    • find_elements_by_tag_name
    • find_elements_by_class_name
    • find_elements_by_css_selector

            除了上面给出的公共方法,这里也有两个在页面对象定位器有用的私有方法。这两个私有方法是find_element和find_elements。

      

    二. 操作元素方法

            在讲述完定位对象(locate elements)之后我们需要对该已定位对象进行操作,通常所有的操作与页面交互都将通过WebElement接口,常见的操作元素方法如下:

    • clear 清除元素的内容
    • send_keys 模拟按键输入
    • click 点击元素
    • submit 提交表单
    • 举例自动访问FireFox浏览器自动登录163邮箱。

       

      

    三. WebElement接口获取值

            通过WebElement接口可以获取常用的值,这些值同样非常重要。

    • size 获取元素的尺寸
    • text 获取元素的文本
    • get_attribute(name) 获取属性值
    • location 获取元素坐标,先找到要获取的元素,再调用该方法
    • page_source 返回页面源码
    • driver.title 返回页面标题
    • current_url 获取当前页面的URL
    • is_displayed() 设置该元素是否可见
    • is_enabled() 判断元素是否被使用
    • is_selected() 判断元素是否被选中
    • tag_name 返回元素的tagName

            举例代码如下:

      

      

    四. 鼠标操作

            在现实的自动化测试中关于鼠标的操作不仅仅是click()单击操作,还有很多包含在ActionChains类中的操作。如下:

    • context_click(elem) 右击鼠标点击元素elem,另存为等行为
    • double_click(elem) 双击鼠标点击元素elem,地图web可实现放大功能
    • drag_and_drop(source,target) 拖动鼠标,源元素按下左键移动至目标元素释放
    • move_to_element(elem) 鼠标移动到一个元素上
    • click_and_hold(elem) 按下鼠标左键在一个元素上
    • perform() 在通过调用该函数执行ActionChains中存储行为

            举例如下图所示,获取通过鼠标右键另存为百度图片logo。代码:

      

      

    五. 键盘操作

            参考:http://selenium-python.readthedocs.org/api.html
            前面讲述了鼠标操作,现在讲述键盘操作。在webdriver的Keys类中提供了键盘所有的按键操作,当然也包括一些常见的组合键操作如Ctrl+A(全选)、Ctrl+C(复制)、Ctrl+V(粘贴)。更多键参考官方文档对应的编码。

    • send_keys(Keys.ENTER) 按下回车键
    • send_keys(Keys.TAB) 按下Tab制表键
    • send_keys(Keys.SPACE) 按下空格键space
    • send_keys(Kyes.ESCAPE) 按下回退键Esc
    • send_keys(Keys.BACK_SPACE) 按下删除键BackSpace
    • send_keys(Keys.SHIFT) 按下shift键
    • send_keys(Keys.CONTROL) 按下Ctrl键
    • send_keys(Keys.ARROW_DOWN) 按下鼠标光标向下按键
    • 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

            这里使用的例子参考虫师的书籍《selenium2 Python自动化测试》,推荐该书给大家。代码还是非常有意思的,大家自己去感受下吧~

      

  • 相关阅读:
    模拟登陆江西理工大学教务系统
    python3爬虫 -----华东交大校园新闻爬取与数据分析
    以selenium模拟登陆12306
    PAT (Basic Level) Practice (中文)1076 Wifi密码 (15 分)
    PAT (Basic Level) Practice (中文)1047 编程团体赛 (20 分)
    PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)
    PAT (Basic Level) Practice (中文)1016 部分A+B (15 分)
    PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)
    PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)
    PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)
  • 原文地址:https://www.cnblogs.com/shaosks/p/6722590.html
Copyright © 2011-2022 走看看