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

Рекомендуемые конфигурации для сервера с Selenium Grid



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

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


Рекомендуемые конфигурации для сервера с Selenium Grid
2012-04-24 10:23
Здравствуйте!
Можете подсказать какие нибудь рекомендации по настройке серверака для Selenium Grid?
Просто админы могут выделить место на виртуальных серверах.


HtmlUnitDriver не распазнаёт элементы Iframe
2012-04-24 10:38
Добрый день!

столкнулся с проблемой определения элемента HtmlUnitDriver в Iframe.

Можект кто сталкивался?

итого:

На одном хосте сидит приложение в нём сидит iframe у iframe есть webelement. Надо до этого webelement и достучаться собсно.

проблема:

при использовании HtmlUnitDriver получаю nosuchelement exception. Причём пробовал играться с локаторами и так и эдак, пропертей у элемента хвататет. При использовании FireFoxdriver всё работает на 5+

детали:

1. driver = new HtmlUnitDriver(); - org.openqa.selenium.NoSuchElementException

2. Поиск элемента:

FindBy (id = "year")
public WebElement dropdownYear;

3. перескакивание на фрейм по индексу, за неимением имени:

driver.switchTo().frame(0);

4. Работа с элементом:

Select select = new Select(dropdownMonth);
select.selectByVisibleText(month);

Вроде всё необходимое указал

всем откликнувшемся кину +5 пойнтов в карму:)

заранее благодарен

Москва,, разработчик C++, C#, PERL
2012-04-24 11:12
В московский офис крупной международной компании, которая является одним из лидеров в своей отрасли (софт и компьютерные комплектующие), в команду разработчиков под мобильные платформы требуется талантливый программист.

Обязанности:
Разработка инструментов, облегчающих оптимизацию движков мобильных приложений

Основные требования:
1. Опыт программирования на C#
2. Опыт программирования на C++
3. Владение PERL
4. Хороший уровень разговорного английского

Хотя бы одним из языков должно быть уверенное владение,
ведущим может быть любой из языков.

Дополнительный плюс: знание QT

Еще один плюс: знание Mac OS

Условия: белая зарплата 80-120к (по итогам собеседований), профессиональные корпоративные курсы, курсы английского языка,
ДМС, бонусы (по результатам собеседования), гибкий график, команда профессиональных программистов-энтузиастов =)

Если заинтересовало - пишите, обсудим подробнее akonyashin@spice-agency.ru
или звоните - 89253806194 (Андрей)


С уважением, Коняшин Андрей
__________________________

Сотрудник группы по подбору персонала,
Агентство "Spice Рекрутмент"

Netbeans Java
2012-04-24 11:33
Вчера столкнулся с непонятной ошибкой, устранить которую не получилось. До определенного момента все написанные тесты работали вполне нормально. Использую для запуска и написания - Netbeans. Однако же, после запуска теста внезапно вылетела ошибка.. ссылающаяся отнюдь не на ошибки в коде.. есть у кого мнения насчет этого?
код ошибки :
run:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
	at org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:56)
	at org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:79)
	at org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:67)
	at javaapplication6.JavaApplication6.main(JavaApplication6.java:32)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 4 more
Java Result: 1


код теста:

package javaapplication6;
import com.thoughtworks.selenium.Selenium;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.Calendar;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
import java.awt.Toolkit;
import java.io.IOException;
import java.net.Proxy;
import java.util.NoSuchElementException;
import javax.annotation.Resource;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import org.openqa.selenium.Alert;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class JavaApplication6 {
    //private static WebDriverBackedSelenium selenium;
    
    public static void main(String[] args) throws InterruptedException, UnsupportedEncodingException, FileNotFoundException {
        
        FirefoxProfile profile = new FirefoxProfile();
             
        WebDriver driver = new FirefoxDriver(profile);
              
        driver.get("http://www.swagbucks.com/");
        driver.manage().deleteAllCookies();
        PrintWriter writer1 = new PrintWriter(new OutputStreamWriter(new FileOutputStream("C:\\reports_SB.txt", true), "UTF-8"));
        String Dt;
        String Dt1;
        Dt = java.util.Calendar.getInstance().getTime().toString();
        writer1.println("\n \n");
        writer1.println("************************************************ \n ************************************************");
        writer1.println("The SB_reg_less13 test has been started at "+Dt+" !");
        writer1.println("\n \n");
        // Find the text input element by its id
            while(true) {
                WebElement fname = driver.findElement(By.id("fName"));
                if (fname.isDisplayed()==true){
                    fname.sendKeys("child");
                    writer1.println("First Name has been successfully entered.");
                    }break;
            }
       WebElement lName = driver.findElement(By.id("lName"));
       lName.sendKeys("child");
       writer1.println("Last Name has been successfully entered.");
       WebElement passw = driver.findElement(By.id("passw"));
       passw.sendKeys("ggggggggggggg");
       writer1.println("New Password has been successfully entered.");
       WebElement cpassw = driver.findElement(By.id("cpassw"));
       cpassw.sendKeys("ggggggggggggg");
       writer1.println("The Password has been successfully confirmed.");
       WebElement swagName = driver.findElement(By.id("swagName"));
       swagName.click();
       writer1.println("The cursor has been succesfully moved on the field swagName");
       Toolkit.getDefaultToolkit().beep();
       Toolkit.getDefaultToolkit().beep();
            while(true) {
                WebElement zipTxt = driver.findElement(By.id("zipTxt"));
                if (zipTxt.isDisplayed()==true){
                    zipTxt.sendKeys("55416");
                    writer1.println("Email and swagname have been succesfully entered.");
                    writer1.println("Zip code has been succesfully entered.");
                    break;}
       }
     Select selectBox =new Select(driver.findElement(By.id("monthSelect")));
     selectBox.selectByValue("3");
     Select selectBox1 = new Select(driver.findElement(By.id("daySelect")));
     selectBox1.selectByValue("3");
     Select selectBox2 = new Select(driver.findElement(By.id("yearSelect")));
     selectBox2.selectByValue("2007");
     Select selectBox3 = new Select(driver.findElement(By.id("genderSelect")));
     selectBox3.selectByValue("Male");
     Select selectBox4 = new Select(driver.findElement(By.id("sqQuestion")));
     selectBox4.selectByValue("22");
     writer1.println("Date of birth less than 13 y.o., Gender, and Secret Question has been successfully selected");
     WebElement sqAnswer = driver.findElement(By.id("sqAnswer"));
     sqAnswer.sendKeys("TN");
     writer1.println("The Security Answer has been succesfully entered.");
     WebElement agreeCheck = driver.findElement(By.id("agreeCheck"));
     agreeCheck.click();
     Toolkit.getDefaultToolkit().beep();
     Thread.sleep(2000);
     while(true) {
         try{
                   WebElement fldBtm = driver.findElement(By.id("fldBtm"));
                if (fldBtm.isDisplayed()==true){
                    writer1.println("New User hasn't been registered.");
                    break;
                }        
         }
         catch(Exception e){
             writer1.println(e.toString());
         continue;
         }
                     
       }
            
     Dt1 = java.util.Calendar.getInstance().getTime().toString();
     writer1.println("\n \n");
     writer1.println("The SB_reg_less13 test has been finished at "+Dt1+" !");
     writer1.println("************************************************ \n ************************************************");
     writer1.close();
     driver.close();
    }
}


проблема с динамическим контекстным меню
2012-04-24 12:34
Добрый день уважаемые форумчане!

Я с Selenium IDE работать только начинаю...не судите строго.... Прочитала все, что могла и по форуму и по справке и где только не читала уже, а проблему решить никак не могу... Помогите пожалуйста!

У меня на работе есть система CitoRus и её функционал нужно тестить. Грубо говоря это огромное веб-приложение с возможностями сравнимыми с PHP или тем же Си, работает на JS, а начинка Cache (что-то типа MUMPS, планируем переход).

И вот в этой системе у меня есть дерево объектов, типов и категорий. И необходимо проводить тест на создание всего этого и редактирование.
Щелчок правой кнопки у меня сделать получилось и даже отрабатывает клик внутри первого уровня меню, а вот дальше то оно раскрывается по наведении курсора...и обратиться к тем дивам я не могу... то есть при Записи теста он там что-то пишет, но потом обратиться к этому не реально...

Вот эти команды у меня отрабатывают нормально:
[info] Executing: |contextMenuAt | id=TR100_A346955-4044-62322-34289-42153 | |                   //открытие менюшки на элементе
[info] Executing: |click | //div[7]/span | |                                                     //клик на пункте Просмотр, например, все отрабатывает, справа на панели открываестя просмотр документа   

[info] Executing: |contextMenuAt | id=TR100_A346955-4044-62322-34289-42153 | |                   //открытие менюшки на элементе
[info] Executing: |click | //div[13]/div[3]/span | |                                             //копируем элемент например
[info] Executing: |contextMenuAt | id=TR100_A346955-4044-62322-34289-42153 | |                   //открытие менюшки на элементе
[info] Executing: |click | xpath=(//div[@onclick='$.cmenu.exec(this);'])[6] | |                  //еще один вариант выбора элемента, уже пункт Вставить
[info] Executing: |click | //div[@id='YesNoBt3']/input | |                                       //при вставке вылетает окно, так нажимается кнопка нет



А вот дальше проблемы. Как пройти во второй уровень меню? Напримет Создать -> Папку
Грубо говоря вот лог:
[info] Executing: |contextMenuAt | id=TR100_A346955-4044-62322-34289-42153 | |                   //открытие менюшки на элементе
[info] Executing: |focus | xpath=(//div[@onclick='$.cmenu.exec(this);'])[1] | |
[info] Executing: |mouseDown | xpath=(//div[@onclick='$.cmenu.exec(this);'])[1] | |
[info] Executing: |mouseMoveAt | xpath=(//div[@onclick='$.cmenu.exec(this);'])[1] | "10,10" |
[info] Executing: |mouseUp | xpath=(//div[@onclick='$.cmenu.exec(this);'])[1] | |
[info] Executing: |click | //div[15]/div/span | |                                                //вот этот клик никак не хочет работать

Мне же нужно подвести курсор к элементу Создать... чтоб раскрылось подменю и там уже выбрать элемент Папку. Как это можно организовать? Подскажите если сможете...


Никаких айдишников у дивов в системе нет и не будет никогда....все приходся делать примерно...

Не могу получить ответ при работе с сервисами в TestComplete.
2012-04-24 12:53
День добрый!
Пытаюсь в тесте использовать запросы к Web-сервисам.
Попробовал пример из учебника :
function WebServicesSample()
{
      var login = "soaptester";
      var password = "soaptester";
  
      var token = WebServices.JiraSoap.login( login , password );
      WebServices.JiraSoap.logout( token );
}

Но на таком примере выдает ошибку:
An exception occurred in the "Unit1" unit at line 7:
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>soapenv:Server.userException</faultcode><faultstring>com.atlassian.jira.rpc.exception.RemoteAuthenticationException: Attempt to log in user 'soaptester' failed. The maximum number of failed login attempts has been reached. Please log into the application through the web interface to reset the number of failed login attempts.

Бросил это дело попробовал свой запрос.
Запрос к сервису выполняется без ошибок, но вот переменная "var token"(в которой должен быть ответ) пустая.
В сервис передается всего один параметр, а возвращается несколько.

Подскажите как грамотно построить запрос, и что будет в переменной "var token" если возвращаемых параметров несколько. Будет там массив значений или XML ответ?
Спасибо

Redmine + TeamCity
2012-04-24 15:12
скачал плагин, поставил, но при создании (тестировании) соединения пишет: "Error: The issues Cache is not alive." или "Error: No group 1" если не указать Ticket Pattern. Может кто-нибудь осуществлял такую интеграцию? Или хотя бы знает что эти ошибки значят... Я вообще не въезжаю.

Воспроизвести ошибку браузера IE
2012-04-24 15:18
Имеется веб-приложение на томкате с БД. Произошел инцидент, на некоторое время повис браузер IE9. Внизу страницы появилось окошко с сообщением "<имя сервера> не отвечает" и кнопка "Восстановить страницу". Ошибок в логах программы не обнаружено, вольное воспроизведение ситуации с том же IE не дало результатов. Я чуть менее, чем полностью уверен, что это глюк самого эксплорера, ибо таких зависаний никогда не наблюдал. Но проблема в том, что источник сообщивший об инциденте - первое лицо компании и не очень дружелюбное. Просто прийти и покопаться в его браузере не получится, да и думаю ничего я там не найду. Меня интересуют действия, которые можно предпринять, чтобы воспроизвести ситуацию, либо соображения, по которым станет ясно, что произошел глюк браузера. Короче, нужно рациональное объяснение случившегося. Наверняка, не только мне посчастливилось воспроизводить подобные вещи. Как можно "отмазаться"?

Хранение таблиц с одинаковыми названиями столбцов
2012-04-24 17:23
При попытке добавить таблицу из приложения ТС 8.0 выдает ошибку "The column you have selected is already in the list. You cannot store columns with the same name.", так как в ней есть столбцы с одинаковыми названиями.

1) Как это можно обойти?
2) Исправлено ли это в последних версиях?

Спасибо.

Использование RemoteWebDriver для Grid
2012-04-24 17:33
Здравствуйте!
Возникла необходимость настроить Selenium Grid. Так как тесты написаны на Selenium Webdriver, то и решил использовать "RemoteWebDriver", но пока не удачно.
Я запустил хаб командой:java -jar selenium-server.jar -role hub.
Затем пытаюсь запустить RemoteWebDriver:
DesiredCapabilities desiredCapabilities = new DesiredCapabilities("firefox", "3.5.16", PlatformWin);
RemoteWebDriver RemDriver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), desiredCapabilities);

на последней строчке получаю ошибку: "Error forwarding the new session Empty pool of VM for setup {platform=WINDOWS, browserName=firefox, version=3.5.16}".

Читал так же http://code.google.com/p/selenium/wiki/Grid2
Код запускаю в VS 2008.
Язык C#.
Прошу помогите пожалуйста!


© 2010 | Software-Testing.Ru


В избранное