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自动化测试》,推荐该书给大家。代码还是非常有意思的,大家自己去感受下吧~

      

  • 相关阅读:
    UVA10891
    UVA10453
    UVA 10201
    UVA10154
    UVA11137
    UVA10617
    UVA10271
    UVA10739
    UVA10306
    节流防抖
  • 原文地址:https://www.cnblogs.com/shaosks/p/6722590.html
Copyright © 2011-2022 走看看