Python for testers

Posts Tagged ‘блог’

ChromeDriver + Python + Browsermob proxy

Written by Михаил Поляруш on . Posted in Автоматизация, Разработка

Для бывалых автоматизаторов веб-приложений известно, как важно иметь под руками прокси сервер, с помощью которого можно решить целый ряд вопросов и проблем с веб-автоматизации. NTLM авторизация, блокирование сторонних сайтов не относящихся к тестированию вашего веб-приложения и т.д. В разных случаях работу с прокси решают по разному, какое-то время назад был придуман хороший проект под названием Browsermob-proxy, который очень помогает при автоматизации.

David Burns написал клиент на python для использования прокси с помощью python и даже приложил пример его использования для FirefoxDriver.

from browsermobproxy import Server
server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()

from selenium import webdriver
profile  = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)

proxy.new_har("google")
driver.get("http://www.google.co.uk")
proxy.har # returns a HAR JSON blob

server.stop()
driver.quit()

Но вот для ChromeDriver примера нет, даже если хорошо погуглить. И люди, которые хотят использовать ChromeDriver, не знают, как заставить цепочку ChromeDriver + Python + Browsermob proxy работать. Потому, что не знают, как правильно подключать прокси к ChromeDriver.

Заполняю этот пробел c соответствующим примером кода:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException, 
ElementNotVisibleException
from browsermobproxy import Server
import urlparse

server = Server(r"c:\browsermob\bin\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()
proxy.new_har()

chrome_options = webdriver.ChromeOptions()
url = urlparse.urlparse(proxy.proxy).path
chrome_options.add_argument('--proxy-server=%s' % url)
driver = webdriver.Chrome(
	executable_path=r"c:\chromedriver.exe", 
	chrome_options=chrome_options)
driver.get("http://google.com.ua/")
driver.find_element_by_id("gbqfsb").click()

print proxy.har

driver.quit()
server.stop()

Детальных шагов не расписывал. Будут вопросы, пишите!

IT Jam и сообщество автоматизаторов тестирования ПО

Written by Михаил Поляруш on . Posted in Работаю, Тренинги

Сообщество автоматизаторов тестирования ПО http://automated-testing.info будет представлено на IT Jam http://it-jam.ciklum.net/. Специально для этого мероприятия был подготовлен промо ролик, которым хочу с вами поделиться.

Как быстро летит время! Вроде бы только недавно начал делать встречи, а уже на носу 19я встреча!

Новая жизнь персональному блогу

Written by Михаил Поляруш on . Posted in Обыденное


Переделка

Переделка

Сегодня день перемен! Я пересмотрел свое виденье того, что такое мой персональный блог и как он  должен выглядить.  Честно говоря, решение уже было принято давно, но я никак немогу выделить своего драгоценного времени чтобы изменить его содержимое.

Самое главное и важное изменение, в отличии от предыдущей версии, то что блог будет писаться на русском языке, что конечно может порадовать русскоязычных читателей :) . Да кстати, если что-то замечаете, то сообщайте мне. Буду очень рад за помощь.

Так же, будет изменен контент и формат постов, так как меня уже “задрала” формальность. Хочется немного свободы. Цель, которую я поставил: показывать некоторые аспекты моей жизни, со стороны персонального развития, работы и взаимодействия с окружающим миром.

Надеюсь все будет в шоколаде!

P.S.
Кстати сегодня мне рассказали, что означает английское слово “ОК”. Оказывается, оно пошло из армии, где указывали, что после боя нет потерь, а именно “0 killed” т.е. сокращенно “ок”. Хотя может это и не правда, надо будет проверить.

Twitter лента

autotestinfo

Как продолжить тест при случайном появлении попапа? http://t.co/tGqX8PjPzD

mpoliarush

http://t.co/9879JVgl21 automates tests written with QUnit, Jasmine, Mocha with Expect.js assertions, Dojo Objective Harness, or YUI Test.