Перейти к содержимому

Публикации Jenka156

138 публикаций создано Jenka156 (учитываются публикации только с 27 апреля 2023)



#92509 элементы с одинаковыми характеристиками

Отправлено автор: Jenka156 12 августа 2011 - 05:27 в Selenium - Functional Testing

ну вот:

Изображение

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

Изображение



#92472 элементы с одинаковыми характеристиками

Отправлено автор: Jenka156 11 августа 2011 - 10:28 в Selenium - Functional Testing

Вот более общий кусок кода. такого хватит?
<div class="x-grid3-row ux-maximgb-tg-level-1   " style="width: 658px; ">
 <table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="width: 658px; ">
  <tbody>
   <tr>
    <td class="x-grid3-col x-grid3-cell x-grid3-td-name x-grid3-cell-first " style="width: 283px; " tabindex="0">
     <div class="x-grid3-cell-inner x-grid3-col-name" unselectable="on">
      АФайл
     </div>
    </td>
    <td class="x-grid3-col x-grid3-cell x-grid3-td-1 " style="width: 341px; " tabindex="0">
     <div class="x-grid3-cell-inner x-grid3-col-1" unselectable="on">
      &nbsp;
     </div>
    </td>
   <td class="x-grid3-col x-grid3-cell x-grid3-td-2 x-grid3-cell-last " style="width: 34px; " tabindex="0">
    <div class="x-grid3-cell-inner x-grid3-col-2" unselectable="on">
     <form id="F259_10" name="F259_10" method="POST" action="/user/edituser/upload" class="file-upload-form">
      <input type="file" name="myfile" id="myfile259_10" size="1" class="file-uploader" title="Редактировать" onchange="uploadFile('259_10', 7);">
       <img src="/Skins/defaultskin/Images/addFile.png" class="file-upload-pict">
     </form>
    </div>
   </td>
  </tr>
  <tr class="x-grid3-row-body-tr" style=""><td colspan="3" class="x-grid3-body-cell" tabindex="0" hidefocus="on"><div class="x-grid3-row-body">
 </div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="x-grid3-row ux-maximgb-tg-level-1  x-grid3-row-alt" style="width: 658px; ">
 <table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="width: 658px; ">
  <tbody>
   <tr>
    <td class="x-grid3-col x-grid3-cell x-grid3-td-name x-grid3-cell-first " style="width: 283px; " tabindex="0">
     <div class="x-grid3-cell-inner x-grid3-col-name" unselectable="on">
      ВФайл
     </div>
    </td>
   <td class="x-grid3-col x-grid3-cell x-grid3-td-1 " style="width: 341px; " tabindex="0">
    <div class="x-grid3-cell-inner x-grid3-col-1" unselectable="on">
     &nbsp;
    </div>
   </td>
   <td class="x-grid3-col x-grid3-cell x-grid3-td-2 x-grid3-cell-last " style="width: 34px; " tabindex="0">
    <div class="x-grid3-cell-inner x-grid3-col-2" unselectable="on">
     <form id="F260_10" name="F260_10" method="POST" action="/user/edituser/upload" class="file-upload-form">
      <input type="file" name="myfile" id="myfile260_10" size="1" class="file-uploader" title="Редактировать" onchange="uploadFile('260_10', 7);">
      <img src="/Skins/defaultskin/Images/addFile.png" class="file-upload-pict">
     </form>
    </div>
   </td>
  </tr>
  <tr class="x-grid3-row-body-tr" style=""><td colspan="3" class="x-grid3-body-cell" tabindex="0" hidefocus="on"><div class="x-grid3-row-body">
</div>
</td>
</tr>
</tbody>
</table>
</div>



#92414 элементы с одинаковыми характеристиками

Отправлено автор: Jenka156 10 августа 2011 - 13:34 в Selenium - Functional Testing

Здравствуйте. при тестировании приложения была обнаружена такая вот вещь:
нужно нажать на изображение скрепки чтоб прикрепить файл (см. скрин):
Изображение
проблема в том, что у всех скрепок на странице получаются одинаковые xpath и нажать на первую еще можно, а на вторую и последующие используюя только xpath не получится, так как нажимает снова на первую картинку.
вот код (первая скрепка):
<td class="x-grid3-col x-grid3-cell x-grid3-td-2 x-grid3-cell-last x-grid3-cell-selected" style="width: 34px; " tabindex="0">
  <div class="x-grid3-cell-inner x-grid3-col-2" unselectable="on">
    <form id="F259_10" name="F259_10" method="POST" action="/user/edituser/upload" class="file-upload-form">
      <input type="file" name="myfile" id="myfile259_10" size="1" class="file-uploader" title="Редактировать" onchange="uploadFile('259_10', 7);">
        <img src="/Skins/defaultskin/Images/addFile.png" class="file-upload-pict">
    </form>
  </div>
</td>

и вторая скрепка:
<td class="x-grid3-col x-grid3-cell x-grid3-td-2 x-grid3-cell-last " style="width: 34px; " tabindex="0">
  <div class="x-grid3-cell-inner x-grid3-col-2" unselectable="on">
    <form id="F260_10" name="F260_10" method="POST" action="/user/edituser/upload" class="file-upload-form">
      <input type="file" name="myfile" id="myfile260_10" size="1" class="file-uploader" title="Редактировать" onchange="uploadFile('260_10', 7);">
        <img src="/Skins/defaultskin/Images/addFile.png" class="file-upload-pict">
    </form>
  </div>
</td>

здесь отличаются только названия форм и input, но я пробовала связать с ними событие clickAt(), ничего не происходит.
подскажите, на что в таких случаях можно ориентироваться? какие способы клика на элемент еще можно использовать?



#92489 элементы с одинаковыми характеристиками

Отправлено автор: Jenka156 11 августа 2011 - 13:33 в Selenium - Functional Testing

Спасибо за помощь, для картинки xpath написала. теперь тест находит ее. но только при нажатии ничего не происходит почему-то. Должно появиться окно загрузки файла, но оно не появляется.
я пробовала и click() и clickAt и вот этот способ:
        $this->mouseDownAt($this->clip1, "4,4");
        $this->mouseUpAt($this->clip1, "4,4");
окно все равно не появляется...

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



#92519 элементы с одинаковыми характеристиками

Отправлено автор: Jenka156 12 августа 2011 - 06:51 в Selenium - Functional Testing

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



#98933 что делать с ошибкой Element cannot be scrolled into view

Отправлено автор: Jenka156 20 декабря 2011 - 11:53 в Selenium - Functional Testing

кто нибудь встречался с этой ошибкой?

на сайте имеются боковые кнопки, при нажатии на которые страница прокручивается вправо или влево к другим разделам.
Когда тест запускается в хроме, то все нормально. страница прокручивается как надо.
Но когда тест запускается в firefox или IE или Opera, то выпадает такая ошибка:
org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: Element cannot be scrolled into view:http://2do2go.mordor.fabit.ru/feed
Command duration or timeout: 31 milliseconds
Build info: version: '2.15.0', revision: '15105', time: '2011-12-08 09:56:25'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_01'
Driver info: driver.version: RemoteWebDriver
Command duration or timeout: 301 milliseconds
Build info: version: '2.15.0', revision: '15105', time: '2011-12-08 09:56:25'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-36-generic', java.version: '1.6.0_20'
Driver info: driver.version: RemoteWebDriver

страница никуда не прокручивается.

Как с этим разобраться можно?



#98981 что делать с ошибкой Element cannot be scrolled into view

Отправлено автор: Jenka156 21 декабря 2011 - 08:28 в Selenium - Functional Testing

прямо на главной странице есть боковые вкладки для перехода на разделы. Справа Топ, слева Календарь.
Вот код, который я использую для перехода:
@Test(alwaysRun=true)
	public void Tabs() throws InterruptedException{
	//-- переход на Календарь
                this.WaitForElementLoad(120, "//div[@id='right-local-nav']/a[@class='local-nav-btn']");
		driver.findElement(By.xpath("//div[@id='right-local-nav']/a[@class='local-nav-btn']")).click();
		this.WaitForElementLoad(120, "//div[@id='left-local-nav']/a[@class='local-nav-btn']/*[text()='Лента']");
		Assert.assertTrue(this.IsElementPresent("//div[@id='left-local-nav']/a[@class='local-nav-btn']/*[text()='Лента']"));
		driver.findElement(By.xpath("//table[@class='cal-week']"));
	//-- переход на Ленту
		driver.findElement(By.xpath("//div[@id='left-local-nav']/a[@class='local-nav-btn']")).click();
		this.WaitForElementLoad(120, "//div[@id='left-local-nav']/a[@class='local-nav-btn']/*[text()='Топ']");
		Assert.assertTrue(this.IsElementPresent("//div[@id='left-local-nav']/a[@class='local-nav-btn']/*[text()='Топ']"));
		driver.findElement(By.xpath("//div[@class='main-block-head active-head']"));
	//-- переход на Топ
		driver.findElement(By.xpath("//div[@id='left-local-nav']/a[@class='local-nav-btn']")).click();
		this.WaitForElementLoad(120, "//div[@id='top_content']");
		Assert.assertTrue(this.IsElementPresent("//div[@id='top_content']"));
		driver.findElement(By.xpath("//h1[text()='Топ']"));
	}

        public class ElementPresent implements ExpectedCondition<WebElement> { 
	        private final By locator; 
	        public ElementPresent(By locator) { 
	                this.locator = locator; 
	        } 
	        @Override 
	        public WebElement apply(WebDriver driver) { 
	                return driver.findElement(locator); 
	        } 
			}
		
	public void WaitForElementLoad(int time, String element_xpath){
			new WebDriverWait(driver, time).until(new ElementPresent(By.xpath(element_xpath)));
		}

и вот прикреплена maff-копия

Прикрепленные файлы

  • Прикрепленный файл  maff.tar.gz   97,47К   1 Количество загрузок:



#98990 что делать с ошибкой Element cannot be scrolled into view

Отправлено автор: Jenka156 21 декабря 2011 - 10:01 в Selenium - Functional Testing

спасибо большое! буду пробовать)



#97289 установка PHPUnit 3.6.3

Отправлено автор: Jenka156 18 ноября 2011 - 06:47 в Selenium - Functional Testing

Здравствуйте! скажите, кто нибудь сталкивался с проблемами при установке PHPUnit 3.6.3?
я устанавливаю через pear-installer. Делаю все как указано в инструкции http://automated-tes...elenium-phpunit

но проблема в том, что PHPUnit какой то очень странный устанавливается:
в нем отсутствуют все файлы SeleniumTestCase.

в чем здесь может быть проблема? может что то дополнительно надо устанавливать?



#93250 увеличить время ожидания ответа

Отправлено автор: Jenka156 26 августа 2011 - 13:53 в Selenium - Functional Testing

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



#93056 увеличить время ожидания ответа

Отправлено автор: Jenka156 23 августа 2011 - 13:53 в Selenium - Functional Testing

ооо.... спасибо большое! видимо я как то невнимательно искала в инете. да и нетбинс мне этого метода не показывает...



#92979 увеличить время ожидания ответа

Отправлено автор: Jenka156 22 августа 2011 - 12:23 в Selenium - Functional Testing

это эквивалентно sleep(milliseconds)? я таким пробовала пользоваться, но мне нужно именно дождаться окончания загрузки страницы. потому что одна и та же страница может грузиться разное количество времени. и получается что в одном сеансе она грузится 30 секунд, а в другой раз будет грузиться около 4 минут....



#92977 увеличить время ожидания ответа

Отправлено автор: Jenka156 22 августа 2011 - 12:15 в Selenium - Functional Testing

для ожидания окончания загрузки страницы я использую метод waitForPageToLoad().
время я выставляю 2 минуты. но иногда бывает такое что ждать нужно и 4 минуты.

Так вот проблема в том, что сколько бы я не выставляла в параметре метода waitForPageLoad(), тест прерывается через полторы минуты ожидания с ошибкой: нет ответа от селениум сервера. если страница загружается быстрее чем полторы минуты, то все работает нормально.

может кто нибудь знает где можно еще выставлять время ожидания ответа от страницы для сервера? может где то в исходниках можно поменять его?



#93237 увеличить время ожидания ответа

Отправлено автор: Jenka156 26 августа 2011 - 11:15 в Selenium - Functional Testing

подниму опять тему...
функция setTimeout не работает к сожалению, какой бы параметр я не проставляла.
саму функцию писала и в блоке setUP, там где задаю браузер и URL, и пробовала прямо перед проблемным местом прописывать setTimeout(10000000).
все равно, спустя 1 минуту 25 секунд тест валится с ошибкой "Could not connect to the Selenium RC server"

страница, на которой валиться тест реально долго грузится: около 2-3 минут, потому что там выполняется большое количество запросов.
что делать?)



#93247 увеличить время ожидания ответа

Отправлено автор: Jenka156 26 августа 2011 - 13:23 в Selenium - Functional Testing

порт: 4444

тесты все проходят, если ждать загрузки страниц надо меньше одной минуты 25 секунд

код теста выглядит так:
<?php

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class create_users extends PHPUnit_Extensions_SeleniumTestCase {
    
    function setUp() {
        $this->setBrowser("*firefox");
        $this->setBrowserUrl("http://beta.test.lan/");
        $this->setTimeout(10000000);
        
    }

    function testMyTestCase() {
//-----------------вход в систему
        $this->open("/");
        $this->LoginUser("admin", "admin"); // вход под админом

       $this->GoToMenu($this->menu_tools, $this->tools_admin, $this->tools_admin_users_rights); // переход в нужное меню
       $this->waitForPageToLoad(600000);
       $this->clickAt($this->department_1); // переход к нужному подразделению
       $this->clickAndWait($this->user_pict); // выбор пользователя
       $this->waitForPageToLoad(600000);

//--------------назначение выбранному пользователю всех прав       
           $this->clickAt("//table[@id='rights_for_administration']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_document_init']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_document_control']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_document_paste']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_routes']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='global_rights_for_groupsrights']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_taskstemplates']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_plugins']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_on_dictionary']//tbody//tr[1]//td[1]//input");
           $this->clickAt("//table[@id='rights_on_tasktype']//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_on_calendar']//tbody//tr[1]//td[1]//input");
           $this->clickAt("//table[@id='rights_for_outerUserGroup'][1]//tbody//tr[1]//td[2]//input");
           $this->clickAt("//table[@id='rights_for_outerUserGroup'][2]//tbody//tr[1]//td[2]//input");
//-------------------сохранение изменений
           $this->clickAt("//input[@value='Сохранить']");
           
           $this->waitForPageToLoad(600000);
           $this->assertTrue($this->isElementPresent("//div[text()='Изменения сохранены']"));
}
}


вот собственное на предпоследней строчке ($this->waitForPageToLoad(600000);) и обрывается тест. он ждет ждет пока страница загрузится, а потом завершается с ошибкой:
PHPUnit_Framework_Exception: Could not connect to the Selenium RC server.



#93044 увеличить время ожидания ответа

Отправлено автор: Jenka156 23 августа 2011 - 12:57 в Selenium - Functional Testing

не могу найти в php эту функцию.... а какие еще варианты есть?

после 1,5 минуты вот какая ошибка: PHPUnit_Framework_Exception: Could not connect to the Selenium RC server

и тогда еще такой вопрос, я просто не совсем понимаю, почему сколько бы времени я ни указывала в параметре waitForPageToLoad(), все равно больше 1.5 минуты ожидание не работает?



#93307 увеличить время ожидания ответа

Отправлено автор: Jenka156 29 августа 2011 - 05:07 в Selenium - Functional Testing

а можете, пожалуйста, объяснить? не совсем понимаю какой метод....



#98341 тесты java - webdriver

Отправлено автор: Jenka156 07 декабря 2011 - 07:08 в Selenium - Functional Testing

спасибо!



#98365 тесты java - webdriver

Отправлено автор: Jenka156 07 декабря 2011 - 12:15 в Selenium - Functional Testing

вот пример:
public class LogInLogOut extends main_class{
	
	@Test(alwaysRun=true)
   public void LoginLogoutUser() throws InterruptedException{
		
			this.WaitForElementLoad(15, "//a[text()='Войти']");
			driver.findElement(By.linkText("Войти")).click();
	//-- ввод неверных данных
			this.WaitForElementLoad(15, "//input[@name='username']"); 
	        driver.findElement(By.name("username")).sendKeys("test@gmail.com");
	        driver.findElement(By.name("password")).sendKeys("234");
	        driver.findElement(By.id("auth-submit")).click();
	        this.WaitForElementLoad(15, "//span[text()='Неправильный логин или пароль!']"); 
	        driver.findElement(By.xpath("//span[text()='Неправильный логин или пароль!']"));
	//-- ввод верных данных
	        driver.findElement(By.name("username")).clear();
	        driver.findElement(By.name("username")).sendKeys("test@gmail.com");
	        driver.findElement(By.name("password")).clear();
	        driver.findElement(By.name("password")).sendKeys("q2wsx'56'");
	        driver.findElement(By.id("auth-submit")).click();
	        this.WaitForElementLoad(15, "//a[text()='Тестовый Пользователь']"); 
	        driver.findElement(By.xpath("//a[text()='Тестовый Пользователь']"));
	//-- выход из системы
	        driver.findElement(By.linkText("Выйти")).click();
	        this.WaitForElementLoad(15, "//a[text()='Войти']");
	        driver.findElement(By.xpath("//a[text()='Войти']"));
	        driver.findElement(By.xpath("//a[text()='Регистрация']"));

   }
	
	   @Test(alwaysRun=true)
	   public void RegisterUser() throws InterruptedException{
		
		   this.WaitForElementLoad(15, "//a[text()='Регистрация']");
		   driver.findElement(By.xpath("//a[text()='Регистрация']")).click();
		   
		   this.WaitForElementLoad(15, "//h1[text()='Регистрация']");
		   driver.findElement(By.xpath("//h1[text()='Регистрация']"));
		   driver.findElement(By.xpath("//div[@id='reg-dialog']/form//input[@name='username']")).sendKeys("tttest11@mail.ru");
		   driver.findElement(By.name("firstName")).sendKeys("Иван");
		   driver.findElement(By.name("lastName")).sendKeys("Иванов");
		   driver.findElement(By.xpath("//div[@id='reg-dialog']/form//input[@name='password']")).sendKeys("123");
		   driver.findElement(By.name("confirm_password")).sendKeys("123");
		   
		  driver.findElement(By.xpath("//input[@value='Регистрация']")).click();
	}
}

если сваливается первый тест LoginLogoutUser(), то второй RegisterUser() не выполняется уже



#98401 тесты java - webdriver

Отправлено автор: Jenka156 08 декабря 2011 - 07:39 в Selenium - Functional Testing

извините... не знала этого. спасибо за информацию...



#98393 тесты java - webdriver

Отправлено автор: Jenka156 08 декабря 2011 - 05:33 в Selenium - Functional Testing

я в эклипсе запускаю. через кнопку Run.
пробовала специально ввести неверный xpath в первый тест, запустила. он начал воспроизводится: на строке с неверным значением упал с исключением NoSuchElementExeption и все, второй тест дальше не начал воспроизводится



#98444 тесты java - webdriver

Отправлено автор: Jenka156 08 декабря 2011 - 19:01 в Selenium - Functional Testing

нет. это только кусок. url выше задается.
а на java как вообще правильно? может быть каждый тест отдельным файлом писать надо? или отдельным классом. потому что сейчас у меня все тесты в одном классе просто написаны разными функциями.



#98361 тесты java - webdriver

Отправлено автор: Jenka156 07 декабря 2011 - 11:28 в Selenium - Functional Testing

со всем разобралась, только есть один небольшой вопрос. Вот в phpunit если в файле было несколько тестов (функциий) и при этом при воспроизведении один из них падал, то начинал выполнятся следующий и так далее. на java также? просто сейчас пробовала: при падении одного из тестов остальные не воспроизводятся почему то..



#98455 тесты java - webdriver

Отправлено автор: Jenka156 09 декабря 2011 - 05:55 в Selenium - Functional Testing

Спасибо огромное преогромное!!!! действительно вместо @Befor и @After надо было написать @beforemethod и @aftermethod. Теперь все работает как надо! очень благодарна всем кто помог)))



#107246 Хром + селениум = хром + селениум.

Отправлено автор: Jenka156 02 июля 2012 - 11:10 в Selenium - Functional Testing

кладете куда-нибудь, а потом правой кнопкой по Компьютеру -> Свойства -> Дополнительные параметры системы -> Переменные среды -> в окошке Системные переменные находите переменную Path и в нее дописываете путь до своего хромдрайвера. У меня, например, путь выглядит так: C:\chrome-driver