zoukankan      html  css  js  c++  java
  • selenium的基本介绍

            应吴姑娘(漂亮的姑娘)之邀,加上我师兄(屌丝)和国新(屌丝),组了个四黑小团伙,每周二分享点东西,感觉就是四个辣鸡相互取暖。可惜,今天早上直接是睡过去了,下午都捐给了《白夜追凶》---没办法,看了一集又想看下一集,可能这就是惯性吧。想想时间也挺急的,所以随意弄点,顺便也更新一下博客。

          正文:

         1. 首先有个Python环境,用pip安装selenium,(Python3是自带pip的,2不带)

             Pip install selenium ==2.52.0 (版本号3.3的好像在切换frame时不太好用,建议2.52.0)

         2. 可以用Google或者火狐浏览器(关闭版本更新,最好是低版本的)配合selenium使用,

            其中要在环境变量中加入对应浏览器的driver(网上有很多)

        3.火狐浏览器的配置(方便抓取网页标签内容)

           3.1在商店里分别将这些安装到火狐浏览器

            clip_image002

            clip_image004

           3.2重启浏览器后可以看到

              clip_image005

             配置就可以了。

    一、selenium的介绍

          selenium主要是用于Web 应用程序的自动化测试,相当于模拟真实用户;还可以配合Python爬虫,特

          别是那些需要登入操作,且post的请求中密码还TM算法加密的,不过效率会低一点。

    二、元素定位(常用的)

         find_element_by_id()                    定位元素通过id

         find_element_by_name()               定位元素通过name

         find_element_by_class_name()      定位元素通过classname

         find_element_by_tag_name()        定位元素通过标签名

         find_element_by_link_text()          定位元素通过内容

         find_element_by_xpath()                 定位元素通过xpath

        find_element_by_css_selector()      定位元素通过css

        推荐使用find_element_by_xpath(),这是绝对定位,而像classname这一类可能有好几个元素。

    三、鼠标事件(常用)

        from selenium.webdriver.common.action_chains import ActionChains

        click()左击

        context_click() 右击

        double_click() 双击

        move_to_element() 鼠标悬停

    四、键盘事件

        from selenium.webdriver.common.keys import Keys

        send_keys(Keys.ESCAPE) 回退键(Esc)

        send_keys(Keys.ENTER) 回车键(Enter)

        send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)

        send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)

    五、切换frame和Windows

        Switch_to_frame() 进入frame

        switch_to_default_content() 返回上级菜单

        switch_to_window() 切换窗口

    六、其他处理

         6.1   driver.find_element_by_...().text 等于显示文本内容(Unicode码),对于不能做点击操作的。

         6.2   关于下拉框选择的问题:例子:sel = driver.find_element_by…()

                                                                Select(sel).select_by_value(“1”) 通过标签

                                                        Select(sel).select_by_visible_text(“wzq”)

        6.3  通过内容网页上跳出一个页面判断是还是否 selenium中 driver.switch_to_alert().accept() 或者拒绝

               对话框text 返回alert/confirm/prompt 中的文字信息
               accept 点击确认按钮
               dismiss 点击取消按钮,如果有的话

        6.4  判断是否被选中:is_selected()

        6.5 获取元素的状态:

              .text

              .tag_name

              get_attribute(“id 或name 或value 等等”)

        6.6  浏览器的前进和后退:
              前进:driver.forward()
              后退:driver.back()

         暂时只想到这些吧,周二弄个PPT和几个例子忽悠一下师兄他们吧。

         成功的人往往耐得住寂寞,却又不甘于寂寞。

         但是,我从我身上看到的只有浓浓的屌丝气息,不知道成功离我还多远。Be right back

  • 相关阅读:
    NYOJ 158 省赛来了(变相组合数)
    NYOJ 111 分数加减法
    NYOJ 14 会场安排问题 (贪心)
    POJ 3903 Stock Exchange(LIS)
    NYOJ 456 邮票分你一半(01背包)
    HDU 4521 小明系列问题——小明序列 (LIS加强版)
    CSU 1120 病毒(经典模板例题:最长公共递增子序列)
    挑战程序设计竞赛里面的几道深度优先搜索
    2009 Multi-University Training Contest 4
    USACO sec1.1
  • 原文地址:https://www.cnblogs.com/yunguoxiaoqiao/p/7751260.html
Copyright © 2011-2022 走看看