13 Sep 2016
Selenium Grid permite definir un conjunto de nodos sobre los que poder realizar pruebas en paralelo.
Para ello debemos bajarnos selenium server y arrancar un hub:
$ java -jar selenium-server-standalone-2.53.1.jar -role hub
y tantos nodos como queramos
$ java -jar selenium-server-standalone-2.53.1.jar -role node -hub http://localhost:4444/grid/register
Desde código, para utilizar el hub que acabamos de arrancar
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
browser = webdriver . Remote ( command_executor = 'http://127.0.0.1:4444/wd/hub' , desired_capabilities = DesiredCapabilities . CHROME )
url = "http://jamvius.github.io"
browser . maximize_window ()
browser . get ( url )
browser . quit ()
09 Sep 2016
Despues de probar BrowserMob en ruby , me he encontrado con algunos problemas, debido a que la conector hace un par de años que no se actualiza, por lo que he optado por probar la versión python . Este seria un ejemplo para utilizar browsermod-proxy desde selenium
from browsermobproxy import Server
from selenium import webdriver
server = Server ([ path_browsermob ])
server . start ()
proxy = server . create_proxy ()
proxy . new_har ( "google" , { 'captureHeaders' : True , 'captureContent' : True })
chrome_options = webdriver . ChromeOptions ()
chrome_options . add_argument ( "--proxy-server={0}" . format ( proxy . proxy ))
browser = webdriver . Chrome ( chrome_options = chrome_options )
browser . get ( "http://jamvius.github.io/" )
har = proxy . har
server . stop ()
browser . quit ()
06 Sep 2016
BrowserMob Proxy es un proxy que nos permite captura la navegación que realizamos en archivos HAR para su posterior analisis.
Se integra con java, python, ruby, pero en este ejemplo, he utilizado ruby y su Ruby client para BrowserMob Proxy . Una vez instalado el BrowserMod en nuestra máquina, este seria un ejemplo sencillo de su utilización para guardar el HAR en un archivo.
require 'selenium/webdriver'
require 'browsermob/proxy'
path = "[PATH_BROWSERMOD_PROXY]"
server = BrowserMob :: Proxy :: Server . new ( path )
server . start
proxy = server . create_proxy
proxy_conf = Selenium :: WebDriver :: Proxy . new ( :http => proxy . selenium_proxy . http )
caps = Selenium :: WebDriver :: Remote :: Capabilities . chrome ( :proxy => proxy_conf )
driver = Selenium :: WebDriver . for ( :chrome , :desired_capabilities => caps )
proxy . new_har ( "google" ,{ :capture_content => true , :capture_headers => true })
driver . get "http://jamvius.github.io"
har = proxy . har
har . save_to "/tmp/google.har"
proxy . close
driver . quit
05 Sep 2016
En las últimas versiones, Firefox y Selenium estan teniendo problemas de compatibilidad , por lo que se recomienda utilizar el nuevo driver Marionette que utiliza GeckoDriver
Para ello deberemos utilizar la nueva versión 3.0 de Selenium que esta en beta.
$ gem install selenium-webdriver -v '3.0.0.beta3.1'
Y despues configurar la inicialización del driver indicando que use marionette
driver = Selenium :: WebDriver . for :firefox , marionette: true
01 Sep 2016
Resumen del tutorial oficial de django
Para crear un nuevo proyecto
$ django-admin startproject mysite
Diferentes maneras de arrancar el servidor
$ python manage.py runserver
$ python manage.py runserver 8080
$ python manage.py runserver 0.0.0.0:8000
En django, un proyecto puede estar compuesto de varias apps, y las apps puedes estar a su vez en varios proyectos. Para crear dentro de la app.
$ cd mysite
$ python manage.py startapp polls
Para crear una vista, hay que añadir al polls/views.py
from django.http import HttpResponse
def index ( request ):
return HttpResponse ( "Hello, world. You're at the polls index." )
y crear polls/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url ( r'^$' , views . index , name = 'index' ),
]
y añadir al archivo mysite/urls.py
from django.conf.urls import include , url
from django.contrib import admin
urlpatterns = [
url ( r'^polls/' , include ( 'polls.urls' )),
url ( r'^admin/' , admin . site . urls ),
]