Size: a a a

QA — Автоматизация

2020 July 29

В

Вячеслав in QA — Автоматизация
Roman (rpwheeler)
FindElements , который вернет list, и из него выбрать элемент.
Шикарно, спасибо)
Чуть позже опробую
источник

В

Вячеслав in QA — Автоматизация
Roman (rpwheeler)
FindElements , который вернет list, и из него выбрать элемент.
Можете помочь это правильно записать?
у меня сейчас:
driver.find_element_by_tag_name("button").click()

Моя запись находит первую кнопку из 2-х
источник

В

Вячеслав in QA — Автоматизация
гугл пока не помогает
источник

SM

Sewa Makhinya in QA — Автоматизация
driver.find_element_by_tag_name("button”)[2].click()
?
источник

В

Вячеслав in QA — Автоматизация
Sewa Makhinya
driver.find_element_by_tag_name("button”)[2].click()
?
Аа, вот так правильно записывается.
Пока не помогло, но понятнее от чего отталкиваться
источник

O

Oleg in QA — Автоматизация
Ну наверно там есть метод find elements
источник

В

Вячеслав in QA — Автоматизация
Sewa Makhinya
driver.find_element_by_tag_name("button”)[2].click()
?
Все получилось.
Я не сразу заметил, что у вас element, а не elements.
источник
2020 July 30

EG

Edward Galiaskarov in QA — Автоматизация
Всем привет. Есть небольшая проблема с прохождением тестов. Фреймворк скорее всего не так важен, но cucumber + capybara.
Есть моменты, когда я проверяю введенные в те или иные поля значения. Заметил, что с полями типа textarea есть некоторые проблемы в считывании данных.

Обычно там текст достаточно большой. Проблема заключается в том, что то ли не успевает считывать данные процедура теста, то ли эти данные не успевают там полностью проявиться (обычно это возникает в ходе открытия страницы, перегрузки, появление попапов). Ставлю задержки до вызова процедуры сравнения значения поля с эталоном, но задержка не всегда помогает, стараюсь ставить минимальную задержку, но порой даже 5 секунд не хватает. Возможно, кто-то сталкивался с подобными явлениями и понимает причину?

Код процедуры чтения такой

Given(/^Value in field with id "(.*?)" must be equal "(.*?)"$/) do |field_id, res|
 tagName = page.evaluate_script("$('##{field_id}')[0].nodeName")
 case tagName
    when 'INPUT'
     result = find("//input[@id='#{field_id}']", :visible => :all).value
    when 'TEXTAREA'
     result = find("//textarea[@id='#{field_id}']", :visible => :all).value
    when 'SELECT'
     result = page.evaluate_script("$('##{field_id} option:selected').text().trim()")
    else
     result = tagName
 end
end
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
Всем привет. Есть небольшая проблема с прохождением тестов. Фреймворк скорее всего не так важен, но cucumber + capybara.
Есть моменты, когда я проверяю введенные в те или иные поля значения. Заметил, что с полями типа textarea есть некоторые проблемы в считывании данных.

Обычно там текст достаточно большой. Проблема заключается в том, что то ли не успевает считывать данные процедура теста, то ли эти данные не успевают там полностью проявиться (обычно это возникает в ходе открытия страницы, перегрузки, появление попапов). Ставлю задержки до вызова процедуры сравнения значения поля с эталоном, но задержка не всегда помогает, стараюсь ставить минимальную задержку, но порой даже 5 секунд не хватает. Возможно, кто-то сталкивался с подобными явлениями и понимает причину?

Код процедуры чтения такой

Given(/^Value in field with id "(.*?)" must be equal "(.*?)"$/) do |field_id, res|
 tagName = page.evaluate_script("$('##{field_id}')[0].nodeName")
 case tagName
    when 'INPUT'
     result = find("//input[@id='#{field_id}']", :visible => :all).value
    when 'TEXTAREA'
     result = find("//textarea[@id='#{field_id}']", :visible => :all).value
    when 'SELECT'
     result = page.evaluate_script("$('##{field_id} option:selected').text().trim()")
    else
     result = tagName
 end
end
селектор странный $('##{field_id}')[0].nodeName . Я бы переписал весь код примерно так result = page.evaluate_script("$('#{field_id}').val()")  - и можно еще какой-то if добавить, если нужна дополнительная логика
источник

EG

Edward Galiaskarov in QA — Автоматизация
Timur Nurlygayanov
селектор странный $('##{field_id}')[0].nodeName . Я бы переписал весь код примерно так result = page.evaluate_script("$('#{field_id}').val()")  - и можно еще какой-то if добавить, если нужна дополнительная логика
ну можно да переписать в стиле jquery, а что странного в селекторе, то что выбирается [0]?
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
ну можно да переписать в стиле jquery, а что странного в селекторе, то что выбирается [0]?
то что две решетки ) - и там не нужно определять тип поля чтобы забрать значение
источник

EB

Evgenii B in QA — Автоматизация
дизайн теста весьма подозрительный, который подразумевает что вы как бы не знаете, что тестируется и почему разные тэги могут быть. но если так сильно нужно, то я бы
- использовал ожидание (вроде как в капибаре для этого используется find())
- переписал бы все ифы в коде на один xpath локатор, который бы включал в себя обьединение трех элементов и возвращал вперед тот, который нашелся (bitwise OR)
источник

EG

Edward Galiaskarov in QA — Автоматизация
две решетки - потому что поиски по id
источник

TN

Timur Nurlygayanov in QA — Автоматизация
обычно одной решетки достаточно + присоединяюсь к предыдущему оратору
источник

EG

Edward Galiaskarov in QA — Автоматизация
Evgenii B
дизайн теста весьма подозрительный, который подразумевает что вы как бы не знаете, что тестируется и почему разные тэги могут быть. но если так сильно нужно, то я бы
- использовал ожидание (вроде как в капибаре для этого используется find())
- переписал бы все ифы в коде на один xpath локатор, который бы включал в себя обьединение трех элементов и возвращал вперед тот, который нашелся (bitwise OR)
да, верно, если поиск по id, то тип поля не имеет значения. Писалось в само начале знакомства с языком и технологией - причина уже утеряна, надо подумать и переписать.
источник

EG

Edward Galiaskarov in QA — Автоматизация
Timur Nurlygayanov
обычно одной решетки достаточно + присоединяюсь к предыдущему оратору
нет не достаточно первая решета - это решетка id в css, а вторая решетка - это форма записи переменой руби, которую бесшовно можно встраивать в строку команды
источник

TN

Timur Nurlygayanov in QA — Автоматизация
ок )
источник

EG

Edward Galiaskarov in QA — Автоматизация
Пожалуй тут исклюзив только для select, val там возвращает не то, что нужно
источник

TN

Timur Nurlygayanov in QA — Автоматизация
я попробовал на своей страничке - вернул то что нужно ) но может где-то работает по-другому
источник

VZ

Valli Z in QA — Автоматизация
кто то сталкивался уже с соккетом?именно что б достучаться к нему нужно получается через среду создавать клиента?
источник