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

Публикации Jenka156

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



#105207 поиск битых ссылок

Отправлено автор: Jenka156 05 мая 2012 - 08:47 в Автоматизированное тестирование

спасибо за ответы!



#105339 поиск битых ссылок

Отправлено автор: Jenka156 11 мая 2012 - 08:35 в Автоматизированное тестирование

а вот еще такой вопрос: есть ли какое-нибудь средство, которое соберет все ссылки со всего сайта и проверит наличие атрибута rel="nofollow" где необходимо?

я знаю как сделать такую проверку используя selenium, но понятия не имею как собрать все все ссылки...



#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

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



#93845 данные для тестов

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

спасибо большое всем!)))



#93723 данные для тестов

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

Нужно видимо эти данные придумать, уточните у своего лида.


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

Я, например, храню в БД список когда-либо зарегистрированных клиентов


у меня по этому поводу условие, надо чтоб тест после себя все удалял, чтоб типа не засорять базу и саму систему.

я сначала думала запускать цепочку тестов по очереди, сначала создать подразделения, потом пользователей, потом задачи, а потом все это удалить. но когда представила какой длины может быть эта цепочка дальше... ну и вообще, было бы лучше если все эти тесты независимо друг от друга выполнялись.
меня вобщем-то интересует такой вопрос: можно ли как-нибудь перед началом теста занести необходимые данные в систему, а в конце теста удалить их? может есть для этого какие нибудь "инструменты"?
я использую связку selenium rc + phpUnit.



#93770 данные для тестов

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

Довольно много времени ушло на создание методов для работы с базой


а эти методы работают через интерфейс приложения или напрямую с базой?



#93716 данные для тестов

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

Здравствуйте! у меня, как у новичка, такой вопрос есть.
помогите разобраться. у меня есть 3 теста: по подразделениям, по пользователям и по задачам для пользователей.
все эти тесты заносят данные в систему и потом в конце удаляют их.
так вот проблема в том, что например, для создания задач сначала нужно иметь в системе каких то пользователей, а для создания этих пользователей нужно иметь подразделения.
получается такая вот последовательность... а дальше тестов будет больше, и данных для каждого из них нужно будет все больше и больше.

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



#100103 помогите новичку в Селениуме

Отправлено автор: Jenka156 27 января 2012 - 09:27 в Selenium - Functional Testing

можно попробовать унаследовать класс с методами



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

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

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



#103866 пересылка кода подтверждения на телефон

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

Здравствуйте! есть такая проблема: при регистрации на сайте на телефон высылается код активации аккаунта.
Есть ли какая-нибудь возможность проверить это с помощью тестов?
Может существуют какие-то методы для такого?



#103920 пересылка кода подтверждения на телефон

Отправлено автор: Jenka156 10 апреля 2012 - 17:34 в Selenium - Functional Testing

Что именно? Доставку сообщения на телефон или сам код?


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

Ну вообще это должно проверяться Unit тестами(если дело касается просто доставки).
Чтобы достать текст смски, на ум только приходит подрубить мобилу к компу. И юзнуть софт какойнить, который может считывать смски(процесс проходит автоматически, единственное софт не должен кодировать данные которые получает). А дальше уже получить какой-то файлик(в котором хранятся данные) и возиться с ним, чтобы получить текст смски


жесткий какой-то способ =)



#93081 selenium + phpunit тесты

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

а метод getConfirmation() не подходит?



#93094 selenium + phpunit тесты

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

вот покопалась на форуме. может эта тема поможет? http://software-test...um/topic/14964/

и вот еще http://swtesting.liv...l.com/5932.html



#103940 пересылка кода подтверждения на телефон

Отправлено автор: Jenka156 11 апреля 2012 - 06:32 в Selenium - Functional Testing

спасибо большое за ответы! Вчера программистов уже спрашивала, но они не очень охотно хотят помогать... Пойду-ка надавлю на них пожалуй =)))
потом отпишусь о результатах.



#104887 Логирование в Selenium после прохождения тестов

Отправлено автор: Jenka156 26 апреля 2012 - 08:24 в Selenium - Functional Testing

testng строит нормальные читабельные отчеты http://testng.org/do...ml#test-results



#104076 пересылка кода подтверждения на телефон

Отправлено автор: Jenka156 12 апреля 2012 - 05:46 в Selenium - Functional Testing

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


Как понимаю вам нужны существующие пользователи для проведения автоматизированного тестирования, а не возможность автоматизации проверки создания новых пользователей. Создание нового пользователя (регистрацию) можно и руками проверить, не думаю, что это каждый день надо.

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



к сожалению регистрацию надо автоматизировать, чтоб она при каждом коммите проверялась...



#93086 selenium + phpunit тесты

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

а это окно стандартное сообщение браузера или написанное разработчиками? у меня была похожая проблема. если стандартное, то достаточно после нажатия на "Удалить" прописать метод getConfirmation(). а если это окно, которое написано разработчиками, то тогда надо на него переключиться и после этого прописать нажатие на кнопку "ОК"



#98844 Как уменьшить время работы теста?

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

я использую вот такое:
public boolean IsElementPresent(String element_xpath)
    {

	try{
		driver.findElement(By.xpath(element_xpath));
		return true;
	}
	catch(NoSuchElementException e){
		return false;
	}
	  	
    }


получается что функция возвращает true в случае присутствия элемента и false если он отсутствует на странице



#92871 xpath для элементов, которые постоянно меняются местами

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

Здравствуйте! Задача вот какая: есть два input элемента на странице. Сначала, когда страница открывается, они вообще отсутствуют в коде. Добавляются в код динамически при щелчке на место на странице, на котором они по идее находятся. Проблема в том, что идентифицировать эти input по каким то уникальным параметрам невозможно. параметр name у них вообще пустой, а id постоянно меняется. Вот код (это уже подгруженные элементы):

<div class="x-grid3-scroller" id="ext-gen63" style="overflow-x: hidden; width: 1258px; height: 347px;">
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1026" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
  <input type="text" name="" id="ext-comp-1025" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 631px; height: 16px;"></div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1036" style="overflow: auto; position: absolute; z-index: 11000; visibility: visible; left: 535px; top: 43px;">
  <input type="password" name="" id="ext-comp-1035" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 631px; height: 16px;">
</div>
</div>

Пробовала идентифицировать через родителей:
//div[@class='x-grid3-scroller']//div[@class='x-layer x-editor x-small-editor x-grid-editor'][1]//input
Но проблема обнаружилась в том, что если в разной последовательности эти элементы подгружаются в код, то и очередность у них разная. Сейчас например div id="ext-comp-1026", в котором находится нужный input стоит первым, но может быть и вторым, если он подгрузился в код вторым. И в тесте происходит ошибка, потому что нужные данные не туда вводятся.
Помогите, пожалуйста, разобраться с этим



#92881 xpath для элементов, которые постоянно меняются местами

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

ааа, простите, забыла сказать... я в примере привела не все инпуты, там их больше. вот так выглядит полная картина:

<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1026" style="overflow: auto; position: absolute; z-index: 11000; visibility: visible; left: 534px; top: 22px;">
<input type="text" name="" id="ext-comp-1025" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 632px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1036" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="password" name="" id="ext-comp-1035" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1028" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1027" autocomplete="off" size="20" class="x-form-text x-form-field" style="text-align: left; width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1038" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1037" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1040" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1039" autocomplete="off" size="20" class="x-form-text x-form-field" style="width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1040" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1039" autocomplete="off" size="20" class="x-form-text x-form-field x-form-num-field" style="text-align: left; width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1030" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1029" autocomplete="off" size="20" class="x-form-text x-form-field x-form-num-field" style="text-align: left; width: 331px; height: 16px;">
</div>

Вот например 2 последних инпута отвечают за домашний (id="ext-comp-1039") и рабочий (id="ext-comp-1029") телефоны. Сейчас они расположены в коде друг за другом, потому что нажатия проводились последовательно сначала на поле домашнего телефона, потом на поле рабочего телефона. Но если сделать наоборот, то в коде сначала будет id="ext-comp-1029", а потом id="ext-comp-1039". Вот пример

<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1030" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1029" autocomplete="off" size="20" class="x-form-text x-form-field x-form-num-field" style="text-align: left; width: 331px; height: 16px;">
</div>
<div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1040" style="overflow: auto; position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px;">
<input type="text" name="" id="ext-comp-1039" autocomplete="off" size="20" class="x-form-text x-form-field x-form-num-field" style="text-align: left; width: 331px; height: 16px;">
</div>

Родители у них одинаковые (все атрибуты одинаковые), а следующий родитель общий идет. Получается что они различаются только айдишниками, которые постоянно меняются при перезагрузке страницы



#93603 Selenium и графика

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

если картинка только одна на странице, то можно еще так:

$this->assertTrue($this->isElementPresent("//img[contains(@src, 'png')]"));



#92471 PHPUnit + Selenium RC + NetBeans

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

,



#98893 открывается opera:debug и не запускается сайт

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

так и есть. opera 11.60 и драйвер 2.15.
дело в том, что это "зависание" только иногда происходит, когда, например, медленное соединение по сети.
(я использую RemoteWebDriver)