# -*- coding: utf-8 -*-
"""
# Install xvfb
sudo apt-get install -y xvfb
# create build directory
mkdir -p ~/build/selenium
cd ~/build/selenium
# Install API for browsermob-proxy and selenium
sudo pip install selenium browsermob-proxy --upgrade
# download browsermob proxy
wget https://github.com/downloads/webmetrics/browsermob-proxy/browsermob-proxy-2.0-beta-6-bin.zip
unzip browsermob-proxy-2.0-beta-6-bin.zip
# copy browsermob-proxy to /var/lib
sudo cp -r browsermob-proxy /var/lib/
sudo chown -R a:a /var/lib/browsermob-proxy
# create log directory
mkdir -p log
# download selenium-server
wget http://selenium-release.storage.googleapis.com/2.41/selenium-server-standalone-2.41.0.jar
# start selenium-server
java /usr/bin/java -jar selenium-server-standalone-2.41.0.jar >> ./log/selenium.$(date +"%Y%d%m").log 2>&1&
# download chrome driver
wget http://chromedriver.storage.googleapis.com/2.9/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
# chromedriver
"""
import sys
import os
def main():
from xvfbwrapper import Xvfb
with Xvfb() as xvfb:
#if True:
open_page_in_selenium()
def open_page_in_selenium(browser='chrome'):
import os
from selenium import webdriver
browsermob_proxy_filepath = "/var/lib/browsermob-proxy/bin/browsermob-proxy"
# Create Proxy Server
from browsermobproxy import Server
server = Server(browsermob_proxy_filepath)
server.start()
proxy = server.create_proxy()
# Create Webdriver
#driver = webdriver.Firefox()
# Create Chrome Driver - unused
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
#driver = webdriver.Chrome(chromedriver)
#chrome_options = webdriver.ChromeOptions()
#chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy))
#driver = webdriver.Chrome(chrome_options = chrome_options)
# Create Profile using Proxy Server
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
# Create HAR
proxy.new_har("myhar")
url = "http://www.python.org"
try:
from datetime import datetime
print "%s: Go %s"%(datetime.now(), url)
driver.get(url)
print "%s: Finish %s"%(datetime.now(), url)
#from selenium.webdriver.common.keys import Keys
# submit query
#elem = driver.find_element_by_name("q")
#elem.send_keys("selenium")
#elem.send_keys(Keys.RETURN)
web_har = proxy.har # returns a HAR JSON blob
print web_har
# Get Additional Performance Data
performance = driver.execute_script("return window.performance")
print performance
print "%s: Complete %s"%(datetime.now(), url)
finally:
driver.close()
server.stop()
if __name__ == "__main__":
main()
pass