Quantcast
Channel: Selenium - Functional Testing: новые темы
Viewing all 702 articles
Browse latest View live

Как нажимать автоматизированно нажимать "Да" при запросе разре

$
0
0

Начал я на днях разбираться с автоматизацией. Немного разобрался с локаторами - думаю "Ну вот теперь я смогу автоматизированно зайти на на свой проект через Selenium".

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

 

У кого есть идеи решить эту проблему? Про что почитать?


Как проверить текущую дату в SELENIUM IDE

$
0
0

Добрый вечер! Недавно стала изучать Selenium IDE. Никогда программированием не занималась, поэтому сложно для меня....
Установила его на Chrome, соот-но все проверки через этот браузер.

Пытаюсь проверить следующие моменты в календаре.

 

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

Использую команду verify element present, локатор id=day28...Тест отрабатывает, элемент с таким id находит.

 

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

 

2) По логике системы, в календаре для выбора доступны не все даты, а только текущая -1 и +7. Т.е., если текущая, например 28-е, то для выбора доступны 27-е, 28-е и еще 7 дней после 28-го.

Вот мне нужно проверить, что для выбора доступны только эти даты. Как это сделать средствами Selenium IDE?

 

3)  И еще одно))) Так как при проверке календаря, мне естественно нужно выбрать одну из этих доступных дат, но они меняются, как вы сами понимаете, так как постоянно меняется текущая дата. Нужно выбирать дату так, чтобы провека всегда проходила, без необходимости править сценарий. Т.е. проверка как-то должна быть завязана на выбор даты в диапазоне -1 и + 7 от текущей, не привязываясь к конкретным цифрам.

 

Буду очень признательна, если кто-то сможет мне помочь с ответами.

На всякий случай прикладываю скрины, как выглядит календарь и HTML его.

Прикрепленные изображения

  • календарь.JPG
  • календарь html.JPG

Как проверить элемент по его атрибуту в selenium ide

$
0
0

Необходимо проверить наличие текста в поле (поле для ввода текста, и оно имеет в себе уже запись, типа подсказки, что это "вылет"), но этот текст в HTML не определен как текст, поэтому проверка по команде verify text не подходит.

 

HTML элемента прилагаю.

 

Пробовала вот так

команда

verify element present

 

локатор 

или такой css=#path input:contains('Вылет')

 

или вот такой css=#path input[placeholder=Вылет]

 

Эти варианты не отрабатывают в selenium ide.

 

Подскажите, пожалуйста, что делаю не так?

Прикрепленные изображения

  • проверка по атрибуту.JPG

Команда store в Selenium IDE - в чем ее смысл?

$
0
0

Добрый вечер!

 

Объясните мне, пожалуйста, смысл команд Store? Если можно, с примером))) для особо начинающих...

 

Я попробовала с данной командой проделать кой-какие манипуляции, но понимаю, что что-то делаю нитак(((

 

1) Заполнила поле в веб приложении, определенным значением, например имя города "Ставрополь"

 

команда 

type     

 

локатор

id=DepartureOne   

 

значение

Ставрополь

 

2) Следущей строкой в этом же сценарии делаю Store

 

команда

store value 

 

локатор

id=DepartureOne   

 

значение

Ставрополь

 

3) Далее, уже в самом конце сценария мне опять необходимо ввести значение "Ставрополь" в поле Прилета

 

команда 

type     

 

локатор

id=ArrivalOne   

 

значение 

${Ставрополь}

 

В чем смысл, если проще ввести Ставрополь и все, без $  и {}....

 

Разъясните мне, пожалуйста, как и для чего нужно использовать данную команду.

Интеграция Selenium WebDriver c Jira

$
0
0

Уважаемые спецы в сфере автотестирования, подскажите, пожалуйста, как осуществить интеграцию с Selenium WebDriver c Jira таким образом, чтобы можно было запускать тесты из Jira (в том числе запуск по расписанию). При наличии бага должен автоматически создаваться тикет с багом. Также после выполнения тестов должны автоматически составляться отчеты.

И возможно ли это, либо нужна установка дополнительных приложений или плагинов...

 

 

Ошибка масштаба при запуске selenium автотестов в Jenkins

$
0
0
Доброго дня!
 
Столкнулся с проблемой при запуске автотестов через Jenkins на Python (v3.7.1) + Selenium (драйвер v3.14) в IE 11, время от времени тесты начинают падать с ошибкой:
selenium.common.exceptions.SessionNotCreatedException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 200%. It should be set to 100%

При этом масштаб установлен на 100% и если зайти под пользователем Jenkins, под которым бегут тесты, и выбрать масштаб, то некоторое количество времени (дней) тесты могут идти без проблем.

Настроки capability, desired capability или options игнорируются. Если увеличить/уменьшить масштаб в браузере, все равно падает с первоначальной ошибкой. Прописывание в реестре для IE ключу ZoomFactor значение 100000, а так же ZoomDisabled со значением 1 не имеют никакого эффекта. Ошибка присуща только запускам из Jenkins, если пускать из консоли или PyCharm такой пролемы не возникает.

 

Настройки по рекомендациям проведены. Подскажите пожалуйста, с чем может быть связана проблема?

 

Как проверить, что выбрано (подсвечено) конкретное значение в выпадающ

$
0
0

Ребята, всем привет!
Вопрос по команде в Seleniun IDE.

 

Я проверяю работу кнопки "Определить ваше местоположение" (см. аттач 1).

Нажимаю ее и у меня выбирается мой город - Москва. Он подсвечен оранжевым.

Вот мне нужно проверить, что подсвечен имеенно мой город - Москва, т.е., что именно у Москвы оранжевый background-color.

Какую команду и какой локатор нужно прописать?

 

 

Подскажите, пожалуйста!!!

 

Прикладываю скрин экрана и html код.

 

Прикрепленные изображения

  • 1.JPG
  • 2.JPG

ImplicitWait не ждет больше 60 сек

$
0
0

хочу ждать элеиента не 60 сек (defaultTimeOutForWait), а передаваемое значение, если передаю значение меньше 60 сек, все работет, как я ожидаю – Timed out через количество секунд, которое я передала,но вот если передаю значение больше 60сек, все равно Timed out после 60 сек. Код ниже:

 

protected TimeSpan defaultTimeOutForWait = TimeSpan.FromSeconds(60);

       

public bool ElementExists(By locator, TimeSpan timeOutInSeconds)

        {

            webDriver.Manage().Timeouts().ImplicitWait = timeOutInSeconds;

            bool result = false;

            try

            {

                result = webDriver.FindElements(locator).Count() > 0;

            }

            catch

            {

                return result;

            }

            webDriver.Manage().Timeouts().ImplicitWait = defaultTimeOutForWait;

            return result;

        }

 


Google iframe перехватывает click() от selenium в браузере Chrome

$
0
0

Например, если в инкогнито зайти по ссылке https://www.mamba.ru/bbs/answer.phtml?id=29898958  то там всплывет модал для подтверждения, что вы старше 18 лет.
Проблема в том, что под кнопкой “Я старше 18” находится гугл каптча http://prntscr.com/n5rjmd  и стандартный селениумовский клик не срабатывает. Ошибки нет, но и ничего не происходит, как будто метод click() не вызывался.

Аналогичная ситуация, если под лайером находится iframe с google Ads http://prntscr.com/n5rj3d. Происходит как будто перехватывание клика, правда, клика по рекламе или каптче тоже нет.

Проверял на версиях Google Chrome 73.0 и 74.0 (и соотвествующие chromedriver), а так же selenium 3.141.59 и 3.14.0.


Сам хром пробовал без опций и аргументов - просто driver = new ChromeDriver();

И что интересно, проблемы нет в Firefox 66.0.2, geckodriver-v0.24.0-macos
Проблема и локально на маке и на удаленке на винде.

 

С чем это может быть связано?

Прикрепленные изображения

  • Без названия (3).png

Команда "wait for element present" (Selenium IDE) - нужно ли у

$
0
0

Всем добрый вечер!

 

Помогите, пожалуйста, разобраться с командой "wait for element present" в Selenium IDE.

Задаю в приложении параметры поиска, жму кнопку Искать...в течение какого-то времени, может сек 10 идет поиск.

Ну и, соот-но, появляются результаты поиска.

 

Скрипт следующий:

 

click                                                 id=searchButton

 

wait for element present                  css=#searchResult > div.mCSB_container                       30000

 

так вот, почему-то не ждет скрипт 30 сек, пока откроются результаты поиска. Идет дальше, ну а элементов, которые я проверяю уже по результатам , соот-но нет, вот и валится(((

Скорее всего, я что-то делаю не так, а вот что, не пойму((

Помогите, пожалуйста, разобраться.

 

На всякий случай прикладываю HTML.

Прикрепленные изображения

  • 1.JPG

Выбор даты из календаря средствами Selenium IDE

$
0
0

Добрый день!

Опять я к вам за помощью.

Проанализировала даты в календаре. Есть активные для выбора даты, есть неактивные. Отличаются в коде только классом, у неактивных класс disabled.

Могу ли я средствами Selenium IDE выбрать любую дату, которой не присвоен класс disabled, соответственно она активна.

Пробовала регулярным выражением, не получается((( может не правильно шаблон прописываб(((

 

Все даты в календаре имеют id=dayи цифру дня, соответственно., т.е. id=day1, (2, 3, 4, и т.д.)

 

Может есть како-йто волшебный метод, который заставит селениум работать!))) Именно Selenium IDE!

 

Спасибо большое!

Прикрепленные изображения

  • 1.JPG

xpath. Переход по дочерней ссылке

$
0
0

Не понимаю, почему в Katalon при ClickAt:

xpath=(//a[@data-analytics-placement])[3] отрабатывает корректно. Но если убрать xpath= и скобки, то корректно отработает только, если у пути указать дочерний элемент на 1 меньше:

//a[@data-analytics-placement][2] .

Если не уменьшить, то он кликнет по предшествующему элементу.

 

То есть в тегах "a" ищутся атрибуты data-analytics-placement и выбирается третий по порядку. Но в первом случае просчитывается путь от единицы, а во втором случае с нуля. Почему?

Тест на официальном сайте hearthstone

 

Причём

//a[@data-analytics-placement][2]  =  xpath=(//a[@data-analytics-placement][3])

Регулярные выражения в Selenium IDE

$
0
0

Добрый день!

 

Вот и до регулярных выражений дошла очередь))))

Буду благодарны, если подскажете, что я делаю не так...

 

При проверке сортировки списка в результатах поиска столкнулась с проблемой проверки времени.

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

 

Изначально проверяла по точному совпадению времени рейса - см в файл 1

 

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

Но шаги не проходят( Пробовала рег выражение писать и в поле Цель и в поле Значение...ничего. Наверное, само регулярное выражение некорректно??? - см. файл 2

Спасибо большое!

 

Прикрепленные изображения

  • 1.JPG
  • 2.JPG

Python selenium проверить наличие элемента на веб странице

$
0
0

Здравствуйте, мне необходимо проверить что определенный элемент присутствует на веб-странице.

Нахожу элемент следующим образом:

Element = driver.find_element_by_id('text')

Проверку сделал следующим образом:

self.assertTrue("id = text", Element)

Но, мне сказали что это не правильно, потому что этот код ничего не проверяет: первый параметр метода это и есть проверка, а второй просто сообщение, которое выводится при падении.

После этого я нашел как проверить наличие элементов следующим методом:

from selenium.common.exceptions import NoSuchElementException
def check_exists_by_id(id):
try:
webdriver.find_element_by_id(id)
except NoSuchElementException:
return False
return True

Теперь я вообще запутался. Скажите пожалуйста, каким методом все таки нужно производить проверку наличия элемента на странице? И все таки, возможно ли это сделать через assert.True()?

 

 

 

 

Как сделать, чтобы переменная увеличилась на число n (Selenium IDE)

$
0
0

Доброе утро!

 

Ребята, помогите, пожалуйста. Как сделать, чтобы переменная, которую я сохранила, в последствие увеличивалась на любое число?

 

Есть календарь, в котором при помощи команды (Спасибо Татьяне)))) вытаскиваю в поле текущую дату.

Затем выполняю команды

store value | id=date | day1

echo | ${day1}
возвращает : 25 апреля 2019

 

 

Далее, мне необходимо выбрать следующую после текущей дату, и здесь проболемка. 

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

 

Начала пробовать с переменными.

Так как у меня уже есть переменная day1, я пробовала так:

click (именно этой командой выбирается значение из календаря) | локатор: ${day1} + 2 (или любое другое число) | значение: пусто

Не отрабатывает!

Затем попробовала и число, которое добавляется к переменной тоже объявить переменной

store | 2 | i

И далее, пробовала так:
click  | локатор: ${day1} + ${2}  | значение: пусто

Не отрабатывает!

Потом решила сохранить это выражение, как еще одну переменную и уже использовать ее:

store | ${day1} + ${2} | day2

click | ${day2}

Не отрабатывает!

 

Что я делаю не так? Подскажите, пожалуйста.

 


Как проверить правильность генерируемого страницей html

$
0
0

Здравствуйте. Автотесты UI на протракторе.

 

Кейс: наше приложение генерирует формочку (iframe), код пользователи могут скопировать и вставить на свой сайт.

 

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

 

Вопрос: вот получила я от приложения свой iframe, смастерила строку с какой-то базовой страничкой, типа такой:

<html>
    <head>
        <title>Embedded Form</title>
    </head>
    <body>
        <iframe src="..." width="600" height="600"></iframe>
    </body>
</html>

Как дальше заставить Трактор открыть этот html в браузере и проделать какие-то действия с формой, которая окажется на получившейся странице (отправить данные и т.п.)?

Как получить значения из подстроки таблицы

$
0
0

Добрый день.

Помогите пожалуйста. Имеется таблица следующего вида.

Есть заказчики. Под каждым заказчиком отображается информация о заказе. Элементов может быть разное количество - может 1, а может и 10. Каким образом можно плучить значения столбца Amount для строк с выбранным чекбоксом.

Для выбора чекбокса используется следующий селектор 

.//*[@id='ProductTable']/.//tr[3]/.//input

Для получения первого значиения

.//*[@id='ProductTable']/.//tr[3]/td[2]  ///возвращает 803,52

Но как получить все значения с выбранным чекбоксом пока понять не могу.

Прикрепленные изображения

  • 2019-04-30_13-04-25.png

Drag and drop внутри canvas элемента в хроме

$
0
0
Всем привет.
Может быть кто-нибудь сталкивался с такой проблемой:
Есть форма редактирования изображения - можно двигать картинку внутри прямоугольника, таким образом выбирая какая область изображения будет использована для аватарки. Небольшое видео того, что нужно сделать: https://www.dropbox.com/s/9pf5eeaktpgu0m7/Screen%20Recording%202019-05-03%20at%2011.48.31%20PM.mov?dl=0 а вот ссылка на демо элемента: https://react-avatar-editor.netlify.com/
 
Проблема в том, что не получается повторить такое поведение в хроме при помощи Actions. То есть код отрабатывает без ошибок, но картинка не перемещается внутри канваса.
При этом я точно проверил что действие происходит в нужной области (внутри элемена canvas).
 
ВАЖНО: такой же код отрабатывает в firefox.
 
Вот пример кода, который воспроизводит проблему в хроме:
package com.oxagile.project.web.tests.userprofile;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

import java.util.concurrent.TimeUnit;

public class TestTest {

public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "libs/chromedriver");
WebDriver wd = new ChromeDriver();
wd.manage().window().maximize();
wd.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
wd.get("https://react-avatar-editor.netlify.com/");
WebElement canvas = wd.findElement(By.cssSelector("canvas.editor-canvas"));
Actions builder = new Actions(wd);
Action dragAndDrop = builder
.moveToElement(canvas, 10, 10)
.pause(2000)
.clickAndHold()
.pause(2000)
.moveToElement(canvas, 100, 100)
.pause(2000)
.release()
.build();
dragAndDrop.perform();
wd.quit();
}
}

При вызове метода current_url подтягивается url до redirect

$
0
0

Добрый день!

Задача проверить, что кейс выполнен успешно и перешел по успешному url. Стек webrdriver+python

Есть страница, после заполнения и отправки данных, если все ок, то браузер переходит на success_url

Я сохраняю текущий url, нажимаю кнопку отправить и жду перехода на новую страницу. В проверке сравниваю страницы

Скрытый текст

 

Тест не проходит. Смотрю в отладчике и почему-то в current_url сохранена ссылка до редиректа. А в driver.current_url хранится нужный url. Почему так происходит? Что нужно сделать, чтобы страница взяла верный url. Может нужно изменить ожидание? 

 

Паралельное тестирование в Cucumber

$
0
0

Из-за того что накопилось много UI тестов которые раняться в общей сложности около часа, было принято решение имплементировать параллельное тестирование. Проект Cucumber + Maven, может кто-то решил данную проблему, сам плагин maven-surefire-plugin не помогает.
Пробовал добавлять различные конфигурации. Но проблема следующая, при ранере открываются окна браузера, но они сразу падают, а следующие не открываются. Нашел статью что для Cucumber проекта нужен плагин cucumber-jvm-parallel-plugin.
 

Кто сталкивался с такой проблемой?

 

<parallel>all</parallel>
<threadCount>10</threadCount>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <includes>
                        <include>**/*CucumberRunner.java</include>
                    </includes>
                </configuration>
            </plugin>
Viewing all 702 articles
Browse latest View live