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

Блокировка уведомлений в browser

$
0
0

Итак есть такая штука как oneSignal которая мешает жить тестировщику, это не уведомление от browser 

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

 

chromePrefs.put("profile.default_content_setting_values.notifications", 2);
 


команда refresh в selenium IDE 3

$
0
0

В предыдущих версиях была команда refresh. Теперь по всей видимости её нет. Подскажите как теперь обновить браузер в селене IDE ? 

Как в selenium IDE 3.4.4 сравнить два текстовых поля.

$
0
0

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

сайт определяет webdriver как робота

$
0
0

День добрый.

 

Имеется:

Firefox 63.0.1

Selenium geckodriver 3.14.0

Java JDK 1.8.0

 
Цель: автоматизировать выбор направления полёта на сайте https://www.transavia.com/en-EU/home/
 
public class Main {
   static String URL = "https://www.transavia.com/en-EU/home/";

   public static void main(String[] args) throws IOException {
       Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe /T");
       String PROFILE_FF = "c:\\Users\\User\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\8yda5pgy.Test";
       String COOKIES = "Cookies.data";

       File profile_file = new File(PROFILE_FF);
       FirefoxProfile profile = new FirefoxProfile(profile_file);
       FirefoxOptions firefoxOptions = new FirefoxOptions();
       firefoxOptions.setCapability(FirefoxDriver.PROFILE, profile);

       WebDriver driver = new FirefoxDriver(firefoxOptions);

       driver.get(URL);
   }
}

Console:

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

 

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

 

Если я захожу на сайт самостоятельно, то всё открывается нормально.
 
Вот что показывает HTTP HEADERES с каптчей:
Скрытый текст
 
А вот HTTP Headers если захожу я:
Скрытый текст
 
Как видно сервер присылает ошибку 405. Но что в запросе не так я не пойму? Помогите разобраться. 

Почему no tests were found

py.saunter

$
0
0

Добрый день! Никак не могу найти нормальной документации по фрейворку py.saunter . Существует ли она и куда копать в изучении этого фреймворка?

Docker для автотестов

$
0
0

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

 

Объясните пожалуйста (если можно проиллюстрировать примерами) зачем нужно использовать Docker для автотестов.

Почему это считается хорошим тоном?

 

 

Я правильно понимаю, если я работаю на макОС и пропишу в докер-образ убунту, то мои тесты будут запуска как-бы на убунту?

 

 

Заранее благодарю.

При смене вкладки, не загружается страница.

$
0
0

Здравствуйте, уважаемые форумчане!)

Начал изучать webdriver в связке с c# и столкнулся с такой проблемой.

Версия chromedriver: 2.45

Версия selenium: 3.141.0

 

Суть проблемы:

На странице при нажатии на кнопку открывается facebook в новой вкладке браузера. Я пробую переключиться на открывшуюся вкладку, и получается так что при переключении страница перестает загружаться. Следовательно дальше не получается получить url этой страницы. Если запускать тест под дебагом и идти по шагам, то тест проходит.

 

Переход на новую вкладку осуществляю вот так:

_webDriver.SwitchTo().Window(_webDriver.WindowHandles.Last());

 

Подскажите пожалуйста, решение проблемы, уже сил нет гуглить))


Проверка введенных данных в Selenium

$
0
0

Возможно ли релизовать такую проверку заполнения данных в полях в Selenium'e?

Пример: Есть реквест (или какая-нибудь форма с полями), селениум должен заполнить данные поля данными, которые я уже вбил ( https://drive.google.com/open?id=1SjKRhjoXwVnZesZhviz3bUUMVqt2wMcS ) => Создается сам реквест => Селениум ищет название "Requisiton_1712_2018_2" по всем реквестом(которые есть на сайте) и переходит на него ( https://drive.google.com/open?id=1hG9isD0X5Fh-PFmCdst5ZZxb_rZaCPjU ) => Селениум проверяет данные, которые я ввел в первом скрине и скидывает отчёт на почту.

 

P.S. На счет того, что можно отчет прислать на почту - я знаю. Мне важно узнать, ли можно сделать такую проверку введённых данных, которую я описал

"Гибридное" тестирование. WEB и DeckTop

$
0
0

codeception php

 

Доброго времени суток всем!

 

Есть тест формы регистрации клиента, где кроме прочих полей, есть поле заполнения идентификатора клиента.

Автотест для для этой формы написан, все работает прекрасно, код клиента заполняем рандомно, от балды.

Возникла необходимость проставлять реальный айдишник клиента, который выдает 1С Бухгалтерия
Теперь вопрос: существует ли возможность "воткнуть" в процесс автотеста регистрации клиента, вызов приложения 1С, проведения там определенных действий, связанных с добавлением нового клиента, получения идентификатора, возврат на тест страницы регистрации, заполнения полученного идентификатора и записью данных?

Другими словами, какие возможности есть воткнуть в автотест web-страницы вызов decktop приложения с последующими там манипуляциями и возвратом на тест web-страницы?

 

Не могу использовать списки с параметризацией в JUnit4

$
0
0

Добрый день. Пытаюсь сделать параметризированные тесты на Webdriver 3 / JUnit4, пока локально в Idea. Начинаю с простого, обход по ссылкам, которые предварительно собраны в виде URL в простой список. Этот список я не могу использовать в качестве параметра. Насколько я понимаю, параметрами могут выступать только объекты.

 

Например я могу объявить объект заранее

Object[] testvalues = new Object[]{"google.com","ya.ru","twitter.com"};

И тогда в тесте он отработает правильно

@RunWith(Parameterized.class)
public class TestParam {

@Parameterized.Parameter
public String domainName;

@Parameterized.Parameters(name = "{index}:TestOf {0}")
public static Object[] data() {
return testvalues;
}

@Test
public void paramTest() {
System.out.println(domainName);
}

}

Фокусы начинаются когда я пытаюсь использовать список ссылок.

1. Я могу сделать объект через toArray()

2. Я могу сделать объект через stream().toArray(n -> new String[n])

3. Я могу сделать объект через stream().toArray(String[]::new)

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

 

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

Как вернуть объект страницы из generic метода

$
0
0

Всем привет.

Давно хотел создать метод generic типа, так сказать освоить работу с дженериками. Использую Selenide.

В итоге, написал метод, открывающий страницу в новой вкладке и возвращающий объект этой страницы

@Step("Открываем новую страницу по ссылке {0} и возвращаем объект страницы {1}")
    public static <T extends PageBase> T openPageInNewTab(String url, Class<T> page) {

        Selenide.executeJavaScript("window.open('"+url+"','_blank');");

        switchTo().window(getWebDriver().getWindowHandles().size()-1);

        new WebDriverWait(getWebDriver(), 20)
            .until(webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));

        sleep(5000);//без этого слипа поля нового объекта page будут null

        try {
            return page.newInstance();
        } catch (InstantiationException | IllegalAccessException ex) {
            throw new RuntimeException("Не получилось создать объект страницы " + page.getSimpleName());
        }
    }

Проблема моя заключается в том, что без sleep(5000), все поля возвращаемого объекта page будут null. Хотелось бы избавиться от слипа. Гуглил, и находил на этом форуме такой конструктор класса, для инициализации элементов страницы
 

public SkillServicePage(WebDriver driver){
        PageFactory.initElements(driver, this);
        this.driver = driver;
    }

Вопрос теперь: как вызвать этот конструктор в моём методе ? или есть другой способ инициализации элементов загруженной страницы ? Спасибо

Selenium WEbdriver зависает через несколько часов работы

$
0
0

При старте работает быстро, через пару часов нагрузка на процессор 99%, перезагрузка программы, даже переустановка хрома не помогает. Все отключаю - в диспетчере задач- 0%, но после запуска любое малейшее действие вызывает нагрузку до 99%, все висит. Спасает ситуацию, только если дать перерыв компьютеру на 6 часов, после чего проблема появляется вновь.  Кто знает как решить вопрос? 

Разрешение доступа к камере и микрофону

$
0
0

Доброго времени всем.
 

Подскажите, как разрешить доступ к камере и микрофону на странице при использовании ChromeDriver.
При входе на страницу с webrtc клиентом, страница запрашивает доступ к камере и микрофону. Необходимо как-то разрешить доступ к оборудованию.

Все кто сталкивался с подобным, подскажите.

 

Заранее благодарен.

IE11 как дождаться открытия pdf в новом окне

$
0
0

Добрый день форумчане. Помоги кто чем сможет.

Исходные данные такие

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

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

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

<html>

</html>

Если ждать появления html, то окно закроется до того, как загрузиться пдф туда. 

Как в этом случае в IE11 понять, что пдф в новом окне появилась?

 

Буду очень благодарна за идеи или решение.

Спасибо.


Как узнать если объект на страничке, для определения дальнейших действ

$
0
0

Intellij IDEA+Java+Selenium+JUnit
Вот у меня на одной страничке есть выбор 2-ух объектов, но если только один, то тест фейлится и висит на findElement когда нету одного из объектов, я понимаю что оно не может найти, но нельзя ли предусмотреть условия или какой таймаут.

//1-ый объект
WebElement SelectUserOwners = driver.findElement(By.xpath("/html/body/div[6]/div[2]/div/form/div[1]/table/tbody/tr/td[2]/div[2]/div/div[4]/div/div/div[2]/a"));
SelectUserOwners.click();

//2-ой объект
WebElement SelectGroupOwners = driver.findElement(By.xpath( "/html/body/div[6]/div[2]/div/form/div[1]/table/tbody/tr/td[1]/div[2]/div/div[4]/div/div/div[2]/a"));
SelectGroupOwners.click();

 

//Сохранение
WebElement CreateNewImage = driver.findElement(By.xpath("/html/body/div[6]/div[11]/div/button[2]"));
CreateNewImage.click();

 

Хочу сделать проверку,
- если есть 1-объект - выбрать его,
- если 2-объект - выбрать его,
- если есть оба - выбрать оба.

 

 

Селениум не корректно работает на сервере

$
0
0

Здравствуйте.

Есть сайт с парсером на селениуме. Нужен он для того что бы с сайта https://www.myscore.com.ua/ взять матчи которые будут завтра - http://joxi.ru/YmE6OVMc05kJJ2 После нажатия загружается список лиг с матчами, но некоторые лиги свернуты - http://joxi.ru/4AkkJ3qiyZ9X6A
 
Проблема заключается в следующем, на сервере селениум то не может дождаться полной загрузки страницы (что бы выполнить скрипт по переходу на завтра, это изредка решается перезагрузкой сервера), то бывает что не может нажать на кнопку (span) что бы показались все матчи. И выдает такую ошибку в этом случае - http://joxi.ru/zANON0WSB3d1Zr . В первом он не может выполнить js скрипт «change_date('tomorrow')».
Что бы все проверить установил у себя под виндовс selenium и проверил, с ПК все отлично отрабатывает, вижу как в браузере эмулируется работа. Но при переносе кода на сервер работает со сбоями.
Используется selenium-server-standalone-3.4.0.jar
Google Chrome 71.0.3578.98 на сервере и такая же на виндовсе.
На сервере - CentOS Linux release 7.3.1611 (Core)
ChromeDriver 2.45.615279 на сервере, на ПК ChromeDriver 2.45.615291
И получается что на ПК парсит на завтра 600 матчей, а через сайт 200
 
На сайте используется php, библиотека - https://github.com/facebook/php-webdriver

Получения опыта в Web-тестировании, поиск проекта (open source)

$
0
0

Около года работаю автоматизатором. Тестируем десктоп приложение при помощи testcomplete. Для дальнейшего образования хочу вступить в какой-нибудь  open source проект с уже более менее сформированной базой тестов.

 

 

Что есть:

1. Опыт автоматизации десктоп приложений

2. Знания java на начальных уровнях и желание прокачаться

3. от 10 свободных часов в неделю

 

Что хочу

1. Получить опыт на тестировании реального веб приложения

2. Поработать с тестированием API

3. Желательна связка selenium + java

 

Из проектов интересны разные CRM системы, возможно какую-нибудь CMS

 

Как навести курсор на объект в Webdriver Selenium?

$
0
0
Элемент на сайте появляется после наведении мыши, методы Actions в программе подчеркиваются красным.
Мой код:
IWebElement element= Browser.FindElement(By.CssSelector("div[id='menu']"));  //здесь необходимо навести курсор для открытия списка
 
actions.png
 

Selenium wd пытается запустить тесты в Safari

$
0
0

Скажу сразу, в автоматизации я новичок и только-только пытаюсь разобраться во всей этой "кухне" Стэк: WebStorm (JS), Selenium Webdriver, Mocha Для начала решил запустить стандартный тест из примера от Селением на своей машине, немного переделал и вот что получилось:

const assert = require('assert');

const {Browser, By, Key, until} = require('selenium-webdriver');
const {ignore, suite} = require('selenium-webdriver/testing');
suite(function(env) {
describe('Поиск в Google', function() {
let driver;

before(async function() {
driver = await env.builder().forBrowser('chrome').build();
});

it('demo', async function() {
await driver.get('https://www.google.com');
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
await driver.wait(until.titleIs('webdriver - Поиск в Google'), 1000);
});

ignore(env.browsers(Browser.CHROME)).it('demo 2', async function() {
await driver.get('http://www.google.com/');
let url = await driver.getCurrentUrl();
assert.equal(url, 'https://www.google.com/');
});


after(() => driver && driver.quit());
});
});

 

Тест вроде как работает, и все круто, но Почему-то тест также прогоняется и в Safari. Естественно в сафари тест падает, при этом в Хроме все хорошо работает. У меня, как у новичка, есть подозрение на переменную env. Прошу не осуждать, а помочь советом.

Viewing all 702 articles
Browse latest View live