• python selenium+phantomJS自动化测试环境


    0x00配置phantomJS

    1、 在windows平台下

    此种方法是弹浏览器进行自动化测试的。

    1、下载谷歌的驱动

    https://chromedriver.storage.googleapis.com/index.html

    2、将解压后的chromedriver.exe放到chrome浏览器的安装目录下。

    3、在代码中调用浏览器驱动,执行自动化操作。

    chromedriver = 'chromedriver绝对路径'
    driver = webdriver.Chrome(chromedriver)
    driver.get(url)

    2、在linux命令行无界面下

    使用phantomJS配合selenium,可以创建无界面的浏览器,这样即可达到我们的目的。

    配置方法:

    1.安装phantomJS

    安装包下载地址:http://phantomjs.org/download.html,包括Windows,Mac OS,Linux版本,自行选择对应版本下载解压即可

    sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

    用 tar 解压 tar.bz2 文件时可能会遇到这个错误

    debian:/usr/src# tar jxf linux-2.6.26.tar.bz2

    tar: bzip2: Cannot exec: No such file or directory

    tar: Error is not recoverable: exiting now

    tar: Child returned status 2

    tar: Error exit delayed from previous errors

    解决办法:

    此问题时缺少bzip2工具,安装该工具。

    yum install bzip2

    0x02 安装selenium

    pip install selenium

    到这里。环境就配置好了。接下来就可以上代码了。

    0x03 示例代码

    主要记录一下常用用法:

    from selenium import webdriver
    
    driver = webdriver.PhantomJS(executable_path='/bin/phantomjs/bin/phantomjs')#这里的executable_path填你phantomJS的路径
    
    driver.get('http://www.xxxx.com')
    print driver.title # 获取title值
    pageSource = driver.page_source # 获取全文内容
    elem_text = driver.find_element_by_name("text") # 通过想输入地方的name值来定位
    elem_text.send_keys(articles)  # 发送的内容
    driver.find_element_by_class_name("class值")
    driver.find_element_by_id("btn-submit").click() # 通过id值来定位,并模拟点击提交
    driver.quit()

    可能出现的报错信息:

    selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH

    这种报错就是你的PhantomJS保存路径填错了,检查填写的路径是否为phantomjs程序的保存路径。

    注意这里使用的是windows系统,在路径前面需要加上r,参考给出的代码语句。

    browser = webdriver.PhantomJS(executable_path=r'C:UserslyhAnaconda2phantomjs-2.1.1-windowsinphantomjs.exe')

    参考文章

    https://blog.csdn.net/lambert310/article/details/48734389

    https://blog.csdn.net/JohinieLi/article/details/76622776

  • 相关阅读:
    Vue.Draggable 文档总结
    JS深度判断两个对象字段相同
    vue防止按钮在短时间内被多次点击的方法
    设计模式学习-单例模式
    设计模式学习---策略模式
    C#7.0中的解构功能---Deconstruct
    讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute
    .NET Core 使用RabbitMQ
    IL指令详细表
    redis 4.0.13 -- 哨兵模式
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/8954304.html
Copyright © 2020-2023  润新知