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

Публикации Lzk

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



#166268 Select объект из листа Drop Box

Отправлено автор: Lzk 21 мая 2018 - 11:24 в Selenium - Functional Testing

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




#165708 Получение данных с таблицы по входящим параметрам

Отправлено автор: Lzk 12 апреля 2018 - 15:30 в Selenium - Functional Testing

xpath'ом го по ячейкам




#165660 Нужен ли Page Object при устройстве на работу?

Отправлено автор: Lzk 11 апреля 2018 - 07:42 в Selenium - Functional Testing

 

научат

а обязательно все компании используют этот паттерн или есть и те кто пишет процедурно?

 

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




#165636 Нужен ли Page Object при устройстве на работу?

Отправлено автор: Lzk 10 апреля 2018 - 15:15 в Selenium - Functional Testing

научат




#165553 Selenium WebDriver + Python + TeamCity

Отправлено автор: Lzk 04 апреля 2018 - 14:10 в Selenium - Functional Testing

 

Контента - море. Проблема с постановкой задачи.

Никакой миграции нет.

Задача запускать автотесты из teamcity.
Для этого надо уметь запускать свои автотесты и уметь запускать что-либо из teamcity.
Но что-то мне подсказывает что задача несколько шире, чем просто запустить автотесты из teamcity.

Возможно, я не там смотрю.

Думаю, запускать свои автотесты из IDE или консоли - это не то, что Вы имеете в виду?

Не исключаю, что задача может быть и шире. Если Вы дадите мне вектор, в какую сторону копать - буду благодарен. :)

 

запускать из тимсити командами командной строки




#165360 Свист души - не работает код

Отправлено автор: Lzk 22 марта 2018 - 09:56 в Selenium - Functional Testing

2. Где у Вас лежит ChromeDriver? Чтобы запускать так, как у Вас (т.е. без указания пути) - он должен лежать в папке, которая есть в переменной PATH.

или указать его через 

System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Desktop\\chromedriver.exe");



#165317 Python + Selenium Error

Отправлено автор: Lzk 19 марта 2018 - 11:55 в Автоматизированное тестирование

chromedriver подконнектили ?




#165316 selenium + junit выпадающий список

Отправлено автор: Lzk 19 марта 2018 - 11:54 в Selenium - Functional Testing

 

Если под "методом селекта" Вы подразумеваете селениумовский Select - то он тут не применим, т.к. работает только с элементами с тэгом select. А у Вас судя по коду - выпадающий список сделан не стандартным селектом, а самодельной конструкцией других элементов (дивы, спаны).

Вариант - делать так, как Вы это делаете вручную. Т.е. кликнуть (либо по полю в целом, либо по стрелочке, если она была бы отдельным элементом), дождаться, пока пункты списка появятся (т.е. - спаны с пунктами списка станут не disabled, лучше подождать кликабельности), кликнуть по нужному пункту.

спасибо, я так и сделал  :victory:

 

Но вот мой друг посоветовал приведу цитату:

"Не то, имел ввиду, что у тебя есть функция(метод), которая(ый) в себе содержит вызов метода поиска элемента по xpath, но через аргумент получает название региона и ищет его локатор.
упрощённое представление в стиле языка Ruby:
def select_region(region_name)
driver.find_element(xpath: "//div[@class='some-class']//div[contains(text(), '#{region_name}')]")
end
Т.е тут используется интерполяция. region_name в xpath подставляется из аргумента метода. Т.е ты его переиспользовать сможешь для выбора любого нужного, а не конкретного региона."

 

Я не очень понял, может вы знаете?

 

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




#165281 Добавление cookie в заросы для выполнения авторизации

Отправлено автор: Lzk 16 марта 2018 - 09:16 в Тестирование производительности

props.get("session_id")

для получения значения переменной. Но вообще можно сделать все проще через интерфейс




#165275 Тестирование запросов к внешнему сервису на С#

Отправлено автор: Lzk 15 марта 2018 - 11:39 в Автоматизированное тестирование

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

 

вот может и ищут готовое решение для этого?

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




#165243 Тестирование запросов к внешнему сервису на С#

Отправлено автор: Lzk 13 марта 2018 - 14:35 в Автоматизированное тестирование

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




#165241 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:56 в Selenium - Functional Testing

 

с какой ошибкой падает ? что в консоль пишет ?

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

 

попробуйте сначала вариант выше, а так да.




#165239 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:53 в Selenium - Functional Testing

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'sn-" + serialNumber + "')]")

вот так попробуйте




#165238 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:51 в Selenium - Functional Testing

с какой ошибкой падает ? что в консоль пишет ?




#165236 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:34 в Selenium - Functional Testing

 

 

 

 

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'" + serialNumber + "']")

из ковычек надо их вынуть. Так переменную не видно, она как строка распознается.

 

'sn-{0}'
а вот это мне куда деть?на странице код написан как sn-12345

а переменная принимает значение 12345, 23456, 34567 и т.д.

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'sn-" + serialNumber + "']")

перед поиском переменную serialnumber необходимо приводить к строчному значению?

 

насколько я помню, можно не приводить. Она сама конвертнется

 

не работает, после serialnumber еще добавлен +, это если после 12345 есть еще какие-то значения?если их нет, то + не нужен?

 

а что пишет ? скиньте стек ошибки. Нет , это для того что бы было корректное окончание xpath выражения




#165234 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:28 в Selenium - Functional Testing

 

 

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'" + serialNumber + "']")

из ковычек надо их вынуть. Так переменную не видно, она как строка распознается.

 

'sn-{0}'
а вот это мне куда деть?на странице код написан как sn-12345

а переменная принимает значение 12345, 23456, 34567 и т.д.

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'sn-" + serialNumber + "']")

перед поиском переменную serialnumber необходимо приводить к строчному значению?

 

насколько я помню, можно не приводить. Она сама конвертнется




#165232 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 13:17 в Selenium - Functional Testing

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'" + serialNumber + "']")

из ковычек надо их вынуть. Так переменную не видно, она как строка распознается.

 

'sn-{0}'
а вот это мне куда деть?на странице код написан как sn-12345

а переменная принимает значение 12345, 23456, 34567 и т.д.

 

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'sn-" + serialNumber + "']")



#165230 Переменная внутри локатора xpath

Отправлено автор: Lzk 13 марта 2018 - 12:48 в Selenium - Functional Testing

find_serial_number = browser.find_element_by_xpath(".//*[contains(text(),'" + serialNumber + "']")

из ковычек надо их вынуть. Так переменную не видно, она как строка распознается.




#165092 Как правильно оформлять Unit тесты?

Отправлено автор: Lzk 02 марта 2018 - 13:38 в Selenium - Functional Testing

это не unit тесты. Функциональные UI тесты.

Почитай про Page Object Model




#164608 Помогите решить проблему с ожиданием аякса

Отправлено автор: Lzk 31 января 2018 - 10:34 в Selenium - Functional Testing

 

 

 

Google -> selenium explicitWait

 

не могу понять как впихнуть это в мой код) уже голова кипит)

 

Вам предложили впихнуть это в браузер и почитать результаты. :)

 

Вы думаете я не читал все это?)  Просто я новичок в этом деле ) 

 

	public WebElement elemIsClickable(WebDriver driver, String elXpath) {
		return (new WebDriverWait(driver, 5))
				.until(ExpectedConditions.elementToBeClickable(By.xpath(elXpath)));
	}



#164585 Помогите решить проблему с ожиданием аякса

Отправлено автор: Lzk 29 января 2018 - 16:20 в Selenium - Functional Testing

Google -> selenium explicitWait




#164538 В консоли выводятся сообщения new SafariOptions()` is preferred to `De

Отправлено автор: Lzk 24 января 2018 - 11:30 в Selenium - Functional Testing

ну вроде написано в сообщении как избавиться.

Using `new SafariOptions()`

а чем вообще мешают эти сообщения ? Это просто инфо




#164298 Не работает метод selectByVisibleText для выпадающего списка

Отправлено автор: Lzk 09 января 2018 - 15:43 в Selenium - Functional Testing

проблема в том что у тебя , видимо, кастомный селектбокс, который сделан не через тег select, а через div(блок). Открывать его и выбирать значение кликами.

click();



#164296 Selenium для нескольких браузеров

Отправлено автор: Lzk 09 января 2018 - 15:23 в Selenium - Functional Testing

 

 

 

browserstack?

 

Не совсем то что надо. Допустим, нужно протестировать в 3 браузерах. С одним все ясно. Достаточно просто прописать нечто подобное в @Before

 System.setProperty("webdriver.chrome.driver", "C:\\Maven\\chromedriver.exe");
 WebDriver driver = new ChromeDriver();

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

 

просто из конфига бери браузер.




#164154 if-циклы при выполнении теста

Отправлено автор: Lzk 22 декабря 2017 - 09:49 в Selenium - Functional Testing

 

 

 

 

Примерно так, при желании можно еще ID добавить.

 

XPath

//li[contains(@class,'m-wrng')]
//li[contains(@class,'m-corr')]

CSS

li[class*='m-wrng']
li[class*='m-corr']

Поправьте меня, пожалуйста. Никак не могу добиться работы теста.
Сейчас мой код выглядит так:
if(webDriver.findElement(By.xpath("//li[contains(@class,'m-corr')]")).isDisplayed()){

     //делай это.

}

else if(webDriver.findElement(By.xpath("//li[contains(@class,'m-wrng')]")).isDisplayed()){
     //сделай так.
}

 

В случае если отображается m-corr - выполняется все внутри if и тест завершается. Но если первым отображается m-wrong - тест падает на if и до else if даже не доходит

 

Все правильно, падает потому что не находит элемент.

Я бы в вашем случае получал элемент по id, насколько видно из примера он одинаковый для обоих случаев. А потом получал бы атрибут и проверял его в if.

Подозреваю, что я понял Вас не верно, потому что снова написал что-то не рабочее

if(webDriver.findElement(By.id("result-panel")).getAttribute("//li[contains(@class,'m-corr')]"){
System.out.println("True");
}
else if(webDriver.findElement(By.id("result-panel")).findElement(By.xpath("//li[contains(@class,'m-wrng')]")).isDisplayed()){
System.out.println("False");
}

Не могли бы Вы показать что имели ввиду? 

if(webDriver.findElements(By.xpath("//li[contains(@class,'m-corr')]").size() != 0){
...