zoukankan      html  css  js  c++  java
  • selenium +chrome headless Adhoc模式渲染网页

    mannual和adhoc模式比较

    Manual vs. Adhoc

    In the script above, we start the ChromeDriver server process when we create the WebDriver object and it is terminated when we call quit(). For a one-off script, that isn’t a problem, but this can waste a nontrivial amount of time for a large test suite that creates a ChromeDriver instance for each test. Luckily, we can manually start and stop the server ourselves, and it only requires a few changes to the script above.

    说的在使用selenium+chromeheadless做自动化测试时候,如果测试用例数量大,给每个测试用例启动一个浏览器要话费更多的时间。

    #coding=utf8
    import os,traceback
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.chrome.options import Options

    service = webdriver.chrome.service.Service('/home/xxxx/Downloads/phantomjs-2.1.1-linux-x86_64/bin/chromedriver')
    service.start()
    class ChromeHeadless(object):

    def __init__(self):

    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--disable-images')
    chrome_options.add_argument('--disable-plugins')
    chrome_options.binary_location = '/opt/google/chrome/chrome'
    #prefs = {"profile.managed_default_content_settings.images": 2} # 关图片
    #chrome_options.add_experimental_option("prefs", prefs)
    self.chrome_options=chrome_options
    self.driver = webdriver.Remote(service.service_url,desired_capabilities=self.chrome_options.to_capabilities())
    self.driver.set_page_load_timeout(120)

    def fun(self,url):

    try:
    proxy_http_list = list(r.smembers('kuaidaili:http')) + list(r.smembers('zhima'))
    pr=random.choice(proxy_http_list)
    self.chrome_options.add_argument('--proxy-server=%s'%pr) #设置代理
    self.driver.start_session(self.chrome_options.to_capabilities())
    #print self.driver.session_id
    self.driver.get(url)

    except Exception,e:

    print '33[7;32;0m%s33[0m' %traceback.format_exc()




  • 相关阅读:
    正则表达式学习笔记(3)字符类
    一个Service/Functional/Persistence的简单框架
    在Visual Studio 2008环境下安装Boost
    你需要掌握的三种编程语言
    abstract、virtual、override 和 new
    WINCE下编译STLPort
    VS2008环境下编译使用SGI STL(using stlport 5.2.1)
    QT For WinCE, Visual Studio 2008环境的搭建
    VC6.0、VS2005、VS2008安装STLport5.2.1
    Ubuntu 11.10 安装nginx+php5+mysql 的web服务器
  • 原文地址:https://www.cnblogs.com/ydf0509/p/7340854.html
Copyright © 2011-2022 走看看