美文网首页
三、浏览器自动化测试工具selenium

三、浏览器自动化测试工具selenium

作者: 铅笔与旧友 | 来源:发表于2018-10-30 17:55 被阅读0次

    一、selenium

    selenium+phatomjs和selenium+chrome

    selenium:是一种用于web程序测试的工具,selenium测试的代码可以直接运行在浏览器中,就像真正的用户操作一样。

    在写python爬虫的时候,主要是用selenium的webdriver 来驱动浏览器进行相关的操作

    安装:pip install selenium

    selenium中元素查找:

    find_element_by_id()
    
    find_elements_by_name()
    
    find_elements_by_xpath()
    
    find_elements_by_tag_name()
    
    find_elements_by_class_name()
    
    find_elements_by_css_selector()
    
    find_elements_by_link_text()
    
    事件
    
    click() 点击
    
    send_keys()
    
    switch_to_alert()
    

    chromedriver:谷歌浏览器驱动

    加载方法如下:

    法一:driver = webdriver.Chrome(r'/Users/fanjianbo/Desktop/chromedriver')
    
    法二:把chromedriver的目录配成环境变量路径,然后:driver = webdriver.Chrome()
    

    【注意】chromedriver的版本要和chrome浏览器相对应,不然很多功能不能用

    下载操作谷歌浏览器驱动的页面:http://chromedriver.storage.googleapis.com/index.html 或者 http://npm.taobao.org/mirrors/chromedriver/2.37/
    
    谷歌驱动和谷歌浏览器版本之间的映射表:http://blog.csdn.net/huilan_same/article/details/51896672
    

    phantomjs:无界面浏览器

    加载方法如下:
    
        法一:driver = webdriver.PhatomJS("C:\Users\ZBLi\Desktop\1706\day04\ziliao\phantomjs-2.1.1-windows\bin\phantomjs.exe")
    
        法二:把phantomjs拷贝到c盘下,并把bin目录配置成环境变量,然后driver = webdriver.PhatomJS()
    

    【注意】phantomjs目前已经不再更新

    下载地址:http://phantomjs.org/download.html
    

    二、使用

    • 使用chrome浏览器
    # 导入selenium工具
    from selenium import webdriver
    
    # 给浏览器加入无头浏览器,使得调取浏览器的时候不需要打开,只需要调用其内核即可
    opt = webdriver.ChromeOptions()
    opt.add_argument("--headless")
    # 根据驱动所在的路径创建出一个浏览器对象
    driver = webdriver.Chrome()
    
    #driver对象可以通过操作浏览器
    driver.get("http://www.baidu.com/")
    
    # 获取页面上的某个标签元素
    btn = driver.find_element_by_link_text("新闻")
    # print(btn)
    
    # 点击方法 .click()
    btn.click()
    
    # 找到输入框,写入内容方法  .send_keys()
    
    input = driver.find_element_by_id("kw")
    input.send_keys("赣南王昱珩")
    driver.find_element_by_id("su").click()
    
    # 对于爬虫来说,更关注做了某些操作之后得到的网页源码是什么
    html = driver.page_source    # 获取页面源码
    with open("baidu.html",'w',encoding='utf-8') as fp:
         fp.write(html)
    
    driver.quit()
    
    • 使用PhantomJS无头操作
    from selenium import webdriver
    
    driver =webdriver.PhantomJS()
    
    driver.get("http://www.baidu.com/")
    # print(driver.page_source)
    
    # 保存截屏方法 .save_screenshot()
    driver.save_screenshot("./baidu.jpg")
    

    相关文章

      网友评论

          本文标题:三、浏览器自动化测试工具selenium

          本文链接:https://www.haomeiwen.com/subject/dvxntqtx.html