
Alexey
16.12.2017
12:04:15
Насколько помню, селениум не поддерживает xpath 2.0

Dmitry
16.12.2017
12:04:15
а если я уберу все что после | он не найдет
xpath helper для chrome

Alexey
16.12.2017
12:05:14
Драйвер находит по такому локатору?

Google

Dmitry
16.12.2017
12:07:56
нет

Alexey
16.12.2017
12:08:33
Тогда делай как я написал

Dmitry
16.12.2017
12:22:16
Да, вроде находит если просто внутри через | писать
Все так странно), просто я читал, что | - объединение
как contains поиск осуществляет тогда, совсем не понимаю
Но расширение потеряло веру)

Alexey
16.12.2017
12:48:18
Например Webdriver contains 'driver'

Google

Alexey
16.12.2017
12:49:46
Вебдрайвер - нет

Evgeniy
16.12.2017
13:02:10
а сколько у тебя будет локаторов с таким словом?
ищи ebdriver
=)
https://stackoverflow.com/a/2893899/3625397

Dmitry
16.12.2017
14:04:47

Evgeniy
16.12.2017
14:05:44
там есть ответ с matches и флагом -i

Dmitry
16.12.2017
14:11:41

Evgeniy
16.12.2017
14:18:27
чем докажешь?
этот matches - как и любой другой matches любого другого matches ЯП - возвращает тебе все occurences регулярного выражения
будь их 0, 1, или n
вот пример
Liam Nisson нашелся по liam с использованием 'liam', matches и флага 'i'

Vladimir
17.12.2017
16:53:43
Привет!
Есть тут знатоки htmlElemets?
Проблема следующая: создал блок, в нём описал селекторы, методы взаимодействия с бизнес-логикой и пр.
Этот блок возвращаю в рамках метода другой страницы, но при вызове методов с блока получаю NPE. Куда копать?

Kate
17.12.2017
16:55:43
аннотацию какую-нибудь забыл, может?

Vladimir
17.12.2017
16:57:28
проверяю. Еще момент, этот блок является частью страны, в рамках метода которой он возращается. Т.е. после определенных действий на странице этот блок появляется
хм, он отдаёт isDisplayed() false

Ivan
17.12.2017
17:06:22
либо ждать надо или тыкешь "не туда" нужно проверить что есть на элементе onclick event

Google

Vladimir
17.12.2017
17:08:56
перепишу сейчас кусок и добавлю ожидание на появление сией формы

Ivan
17.12.2017
17:09:14
угу должно помочь

Vladimir
17.12.2017
17:10:15
хочется по уму и куски интерфейса разносить, но увы(

Kate
17.12.2017
17:14:20
почему увы? ты ее не методом каким-то из родительского объекта получаешь? вроде ж только туда нужно ожидание добавить и всех дел, не?

Vladimir
17.12.2017
17:15:21
к ней expected condition добавил
во, попалась форма

Kate
17.12.2017
17:17:42
еее!

Vladimir
17.12.2017
17:18:02
:D
проблема-таки была в элементах этой формы. Собственно, объявил их тип, как Selector из HtmlElements, но пока NPE
в общем, кэп подсказывает, что элементы страницы не инициализируются.
а, они вообще все null

Vladimir
17.12.2017
17:36:40
@katerinette и Иван Ефимов, спасибо, что помогли подумать)

Kate
17.12.2017
17:37:13
пожалуйста)

Alexander
17.12.2017
20:23:34
Вопрос к гуру HtmlElements. Беру их тестовый пример с гита, но получаю, что The annotation @FindBy is disallowed for this location. Это когда класс аннотируются так. Проект в эклипсе, импорт селениумовского FindBy. Куда рыть?

Evgeniy
17.12.2017
20:26:06
интернет подсказывает, что где-то возможно потерян импорт этой аннотации. Эклипс не подсвечивает ненайденный референс на эту аннотацию?

Alexander
17.12.2017
20:27:42
Да, заметил что ругается на импорт. Syntax error on token "import", delete this token. Про референс не очень понял
Но на аннотацию переменной он не ругается

Evgeniy
17.12.2017
20:28:58
референс - это когда ты ссылаешься на какой-то код, и он не может найти в коде связь, откуда этот идентификатор взялся. Как при импорте сломанном\отсутствующем

Alexander
17.12.2017
20:29:33
Спасибо, видимо в моей голове другие термины живут)

Google

Evgeniy
17.12.2017
20:29:57
Т.е. ты пробуешь запускать код, который до старта уже дает тебе все признаки проблем с импортами и другими вещами?

Alexander
17.12.2017
20:30:01
Но я его вроде автоимпортом из селениума вставлял

Admin
ERROR: S client not available

Alexander
17.12.2017
20:30:30
Я не пытаюсь запустить, я пытаюсь понять ошибку. Хотя запустить может тоже пытался, ради интереса) не помню

Evgeniy
17.12.2017
20:30:52

Alexander
17.12.2017
20:30:53
Если что, то не знаю я этих ваших джавовых тулзов)
В эклипсе. Из идеи у меня только пичарм

Evgeniy
17.12.2017
20:31:37
автоимпорт ничего не делает из коробки, он добавляет за тебя строчки в коде, в шапке файла на класс
у тебя должен быть импорт FindBy, а затем использование FindBy к нужному идентификатору
@FindBy(id = "idOfYourElement")
WebElement myLocator;

Alexander
17.12.2017
20:34:11
Ещё раз - я скопировал пример из репы htmlElements. Оно ругается на использование FindBy как декоратора _только_ класса
Пока что гугл подсказывает, что надо так @Block(@FindBy(xpath = "//form"))

Evgeniy
17.12.2017
20:35:13
скинь ссылку на эту репу. поставлю сейчас себе эклипс

Alexander
17.12.2017
20:35:26
Там пример без импортов, но это не проблема. Пока что он ругается на селениумовский импорт. Может я библиотеку не так подключил? Но вроде подключил, если предлагает
https://github.com/yandex-qatools/htmlelements
Всё, я вроде разобрался. То ли я импорт выше криво закрыл, то ли он криво экспортнул FindBy
Стоило с чатом поговорить)
Но вот аннотирование класса он понимает только через Block()

Richard
17.12.2017
20:40:57
Обращайся )

Evgeniy
17.12.2017
20:43:13
стоит сказать, сейчас запущу IDE и этот кусок кода, как сразу решаются проблемы
удивительная особенность человеческого внимания

Google

Alexander
17.12.2017
20:43:56
Не, это сработал принцип резиновой уточки, которой был чат :)
Я ж ни разу не джавист. Не знаю я этих ваших эклипсов и т.д.) В нём даже ctrl+/ код не комментирует :(
cпасибо всем :)

Roman
17.12.2017
21:42:57
предупреждаю всех, что данный плагин https://plugins.jetbrains.com/plugin/7415-robot-framework-support не поддерживает Selenium2library 3+ версии

Alexander
17.12.2017
21:50:30
А будет?

Вячеслав
18.12.2017
05:37:00
#QA_question всем привет. есть тут люди-питонисты? кто нибудь читал "Автостопом по Python"? что скажете? полезно или нет? питон изучил немного, читал Лутца. с программированием знаком по другим языкам. любил когда то C#

Artem
18.12.2017
05:40:25
Читать всегда полезно
Найди себе практические задачи и практикуйся, за счет чтения программировать не научишься.
Найди кратчайший путь преобразования слова cat в dog. За раз можно менять только одну букву. При этом новое слово должно существовать.

Вячеслав
18.12.2017
05:44:07
это то понятно, я про книгу вообще то спрашивал