51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1595|回复: 2
打印 上一主题 下一主题

[原创] 学习成长记20160325 【selenium+python】

[复制链接]
  • TA的每日心情
    奋斗
    2016-3-31 09:18
  • 签到天数: 7 天

    连续签到: 4 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2016-3-26 15:37:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


    今天学习了selenium+python的环境搭建
    1.selenium相对于QTP的优点,对于现在的我来说,只是因为它开源,支持多平台,支持多浏览器,支持分布式测试。
    2.下载了python安装包2.7.11/setuptools/pip,然后依次安装
    a. exe档直接默认安装python
    b. 配置环境变量
    修改我的电脑->属性->高级->环境变量->系统变量中的PATH:
    变量名:PATH
    变量值:;C:\Python27
    c.setuptools-20.3.1.tar.gz文件,对文件进行解压,找到ez_install.py文件,进入windows命令提示下执行ez_install.py
    C:\setuptools-20.3.1>pythonez_install.py 没有报错表示安装成功.
    d. 安装pip ,我默认解压在了C:\pip-8.1.1 目录下
    打开命令提示符(开始---cmd回车)进入C:\ pip-8.1.1目录下输入:
    C:\pip-1.3.1  > python setup.py install
    3. 安装selenium
    连网, 直接在C:\Python27\Scripts  下输入命令安装: C:\Python27\Scripts > pip install -U selenium
    4.安装chromedriver
    将下载的exe文件放在chrome安装目录:C:\\\\\Google\Chrome\Application\ 然后设置path环境变量 设定成安装目录即可。
    其他driver方法雷同。

    今天第一次看第一个script:
    A
    #conding=utf-8
    from selenium import webdriver
    browser=webdriver.Chrome()
    browser.get("http:\www.baidu.com")
    browser.find_element_by_id("kw").send_keys("python")
    browser.find_element_by_id("su").click()
    browser.quit()
    重要的一个知识点就是元素的定位问题,这也是自动化测试的核心。这就像你要安排别人做事,首先要找到这个做事的人。 这个人就有很多的唯一属性(特征),如身份证 姓名 等等
    这里就要学习webdriver对象定位方法:
    id
    name
    class name
    link text
    partial link text
    tag name
    xpath
    css selector
    举个例子:百度页面的搜索输入框
    <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">  这样看就很清晰了。要定位一个点只需找到他的属性特征,唯一的特性就能准确识别到它。
    这里面的type就是tag name
    browser.find_element_by_link("新闻").click()
    或browser.find_element_by_partial_link_text("新").click()   这个也能定位到“新闻”的链接.
    这里要说等等是xpath和CSS定位,
    a. CSS定位是很灵活牛x的定位方式,它可以连接页面元素的任意属性,具体我还没完全弄懂
    browser.find_element_css_selector("a[name=\"wd"\]").send_keys(Python)/browser.find_element_css_selector("kw").send_keys(Python)等等都可以定位到输入框。
    b. XPath定位扩展了id name的定位方式比如定位页面上的第3个复选框
    browser.find_element_xpath_("//input[@id='kw']").send_keys(Python)
    browser.find_element_xpath_("//tr[@id='kw']/td[2]").click()   #id为'kw'的tr,定位它里面的第2个td
    到这里我还没弄懂xpath真正的结构,可能需要重新去学习XML,因为这个xpath是一种XML文档中定位元素的语言。

    B
    添加Delay时间确保脚本运行的稳定性
    这里需要引入time函数  import time
    time.sleep(3)  #休眠3秒  当然也可以用智能等待时间browser.implicitly_wait(10)
    C
    打印信息去确认脚本运行位置与正确性   中间点
    print driver.title  #把页面title打印出来
    D
    浏览器最大化 browser.maxmize_window()
    浏览器宽高设定 browser.set_window_size(600,800)  #宽600 高800
    浏览器前进后退  browser.get(first url) browser.get(second url)  然后browser.back()/browser.forward() 就相继有作用了.  是不是很有意思呀. 哈哈

    上面已经讲过元素定位, 接着就是应该操作元素了,对吧!
    操作对象常用:
    click  点击按钮
    send_keys 按键输入
    clear 清空
    submit 清空或提交
    text 获取文本信息  例如:date=driver.find_element_by_id("cp").text  print data

    今天就学习到这. 明天继续.

    这里感谢 虫师, 知识点都是从他那学来的.




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2016-3-27 17:07:55 | 只看该作者
    这个直接点赞啊。希望坚持下来,会有很多收获啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-3-31 09:18
  • 签到天数: 7 天

    连续签到: 4 天

    [LV.3]测试连长

    3#
     楼主| 发表于 2016-3-28 08:32:45 | 只看该作者
    archonwang 发表于 2016-3-27 17:07
    这个直接点赞啊。希望坚持下来,会有很多收获啊

    谢谢哈。嗯,一定要坚持
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 15:45 , Processed in 0.067314 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表