Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Школа успешных тестировщиков, v 2.0, начало 25 февраля



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Школа успешных тестировщиков, v 2.0, начало 25 февраля
2015-02-09 10:26

Новый тренинг от Натальи Руколь

Онлайн-тренинг с практической работой, 10 занятий

Вы недавно работаете в тестировании, или только хотите приобщиться к этой отрасли? Хотите получить фундамент, необходимый для построения успешной карьеры? Хотите узнать, из чего состоит эта область деятельности, чтобы быстрее стать в ней профессионалом?

Именно для вас – наш курс «Школа Успешных Тестировщиков v2.0». С этим курсом вы:

  • Получите широкий кругозор в сфере тестирования
  • Научитесь основным техникам и познакомитесь с основными инструментами тестировщиков
  • Узнаете, как построен процесс тестирования в ведущих компаниях
  • Пройдёте профильный тест, чтобы узнать, какие области и специализации в тестировании для вас ближе всего
  • Узнаете, как получать от работы максимум удовольствия
  • Создадите план развития на год, чтобы стать успешным тестировщиком

Этот курс будет полезен тем, кто обладает опытом в тестировании до одного года, или кто только хочет найти свою первую работу в сфере тестирования.

Подробная программа и условия участия


Читать дальше

Программирование на Python для тестировщиков, начало 27 февраля
2015-02-09 11:55

Новый тренинг!!!

Двухмесячный онлайн-тренинг с домашними заданиями (10 занятий по 1,5 часа) + постоянные консультации тренера в скайп-чате и закрытом форуме

Тренер: Баранцев Алексей

Этот курс предназначен для обучения тестировщиков программированию на языке Python (для тех, кого интересуют другие языки, у нас есть аналогичные курсы для Java и C#).

Да, это курс именно для тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения програмировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.

Изучаемый материал будет демонстрироваться на едином сквозном примере -- мы будем разрабатывать на языке Python автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.

Но одним примером мы не ограничимся, для закрепления материала мы в течение курса построим "в едином стиле" несколько проектов с тестами для приложений разного типа, научимся тестировать приложения через веб-интерфейс, пользовательский интерфейс Windows, интерфейс доступа к базам данных, сетевые интерфейсы (почта, HTTP, веб-сервисы).

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

Посмотреть подробную программу и условия участия


Читать дальше

Drag'n'drop из parent в iframe
2015-02-09 15:33

День добрый. Пошла вторая неделя войны с drag'n'drop. Решил спросить у сообщества.

Итак:

Используемые средства:

Selenium.WebDriver 2.44.0
WebDriver.ChromeDriver.win32 2.13.0.0
Браузер Chrome последняя версия.

Код на C#, используется Page object pattern, предыдущим тестировщиком написан фреймворк, обёртка над Селениумом.

 

Есть .net cms. В ней есть редактор страниц. Редактор открывается в одной странице, в iframe подгружается редактируемая страница. Iframe подгружается через div с того же домена.

Нужно с помощью drag'n'drop перетягивать элементы(картинки, видео, и пр.) в определённые контейнеры в iframe. Насколько я понял из кода страницы используется Jquery(один из js подгруженых в страницу - /* This file contains following files: jQuery 1.11.1 + jQuery UI 1.10.4 + jQuery Migrate 1.2.1 */).

Доступ к редактору предоставить я не могу, доступ только из внутренней сети.

 

Часть кода: http://screencast.com/t/ArEk54ue

 

Опишу сценарий происходящий в момент перетаскивания элемента.

1. В parent контенте выбираем нужный элемент id=someelement. (В коде строчка <div class="dragin-controls dragin-control-helper Active"> неактивна).
        </div></div>)

2. Зажимаем его мышкой и тянем в ифрейм.

3. В коде parent страницы появляется такая строчка:

<div class="ui-draggable-iframeFix" style="width: 1920px; height: 355px; xposition: absolute; opacity: 0.001; xz-index: 1000; top: 319px; left: 0px; background: rgb(255, 255, 255);"></div>

4. У строки из первого шага появляется дочерний элемент, он же наша картинка которую мы держим мышкой. Position меняется если двигать элемент. Выглядит код вот так:

<div class="dragin-controls dragin-control-helper Active">

           <div id="ControlContainer_ctl01_SimpleImage237" class="control-item dragin Image inline-child ui-draggable dragin-helper ui-draggable-dragging" data-tooltip-text="Træk og slip for at indsætte" style="position: absolute; left: 124px; top: 589px;">
                  <img src="/CustomerData/Files/Images/Archive/97-wq/testimagefile_942.jpg" style="width:50px;height:50px;">
        </div></div>

Или наглядней в коде: http://screencast.com/t/Cio4knwp

 

5. В момент когда мы перетягиваем элемент в ифрейм у строки :

<div id="DropInner" style="position: absolute; left: 0px; top: 0px; xz-index: 996; width: 100%; height: 1px;"></div>  срабатывает onmouseover и появляются дочерние элементы. См. скрин:

http://screencast.com/t/cpj3ihlE959

В момент наведения мышки с элементом контейнер меняет цвет на зелёный.

Код контейнера в ифрейм имеет такой вид:

http://screencast.com/t/Z6QBD6IYuB

 

 

 

Что я пробовал делать:

1. Простой drag'n'drop не срабатывает т.к. target элемент находится во фрейме.

2. Drag'n'drop по координатам, не работает вообще.

3. Drag'n'drop с помощью Actions:

 

MoveToElement выглядит так:

public Actions MoveToElement(IWebElement element)
       {
           var builder = new Actions(Webdriver);
           return builder.MoveToElement(element);
       }

 

 

Выжимка из теста:

source - картинка которую мы хватаем мышкой изначально.

target - контейнер куда мы перетаскиваем элемент.

 

WrapperSelenium.MoveToElement(source)
                .ClickAndHold(source)
                .Build()
                .Perform();

 

WrapperSelenium.SwitchToFrame("WebsiteFrame");

 

WrapperSelenium.MoveToElement(target)
                .Release(target)
                .Build()
                .Perform();

 

Не работает.

 

4. Пробовал несколько способов с помощью Javascript - ни один не срабатывает. Какие конкретно уже не вспомню, слишком много их было.

5. В данный момент пробую с помощью jquery-simulate (https://github.com/j-ulrich/jquery-simulate-ext/blob/master/doc/drag-n-drop.md#iframes) - элемент захватывать получается, контейнеры становятся активными, но  навестись на них и отпустить мышь не получается.

 

Подскажите как победить этот drag'n'drop!

 

 

 



Как в Selenium работать с окном выбора?
2015-02-09 16:38

Всем, Добрый день!
Есть основная форма веб клиента, так же на этой форме много разных кнопок. При нажатии одной из кнопок открывается еще одно окно выбора товара, в котором нужно кликнуть по товару, после чего форма закроется и товар отобразится на главной форме.

Подскажите, пожалуйста, как обработать такую ситуацию с помощью Selenium используя язык Java?

У меня получается открыть второе окно, но кликнуть и выбрать товар никак...Видимо там как то фокус нужно установить на вторую форму?

public class test1 {
    private WebDriver driver;
    private String baseUrl;
    private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {
        driver =new InternetExplorerDriver();
        baseUrl = "http://localhost/test1";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testSample() throws Exception {
        
         
            driver.get(baseUrl);
            
            driver.findElement(By.id("loginContainer_username")).clear();
            driver.findElement(By.id("loginContainer_username")).sendKeys("da");
            driver.findElement(By.id("loginContainer_password")).clear();
            driver.findElement(By.id("loginContainer_password")).sendKeys("da");
            driver.findElement(By.name("loginContainer$ctl05")).click();
            driver.findElement(By.id("tdImbButtonmenu_2")).click();
            driver.findElement(By.id("manageFilter_ctl00_filterItem_buttonEnter_popupButton")).click();
            driver.findElement(By.id("itemDataGrid_ctl03_ctl05")).click();
    }    

    @After
    public void tearDown() throws Exception {
      driver.quit();
      String verificationErrorString = verificationErrors.toString();
      if (!"".equals(verificationErrorString)) {
        fail(verificationErrorString);
      }
    }
}


© 2010 | Software-Testing.Ru


В избранное