Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenium vs. Capybara (+ RSpec) не знаю почему


(ffess) #1

Доброго времени суток, коллеги.

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

Проблема собственно в том, что мне с трудом удалось настроить работу Capybara+Rspec,  но после этого все Webdriver методы стали для меня недоступны, то есть если я пытаюсь использовать какойто метод по отношению к элементу, то возникает ошибка что undefined method '***' for #<Capybara::Element....>, что очевидно, а очень хочеться заюзать кое что из вебдрайверовского набора методов,  я ведь подключил Capybara, для расширения моих возможностей, а никак не для намеренного ограничения себя же в возможностях.

Подскажите кто сталкивался с подобными трудностями

 


(Дмитрий Жарий) #2

Попробуйте вот это

How can I access the default webdriver for Selenium 2 with Rails 3 Rspec and Capybara?

 

Цитата:

 

You can get access to the webdriver in Capybara using:

page.driver.browser

So you would want to do something like:

empty_stars = page.driver.browser.find_element(:class, "empty-stars-container")

(ffess) #3

Но тут как бы в вопросе "таится" еще один;)

Ау-у-у-у. Есть тут кто-нибудь, автоматизирующий на Руби+Вэбдрайвер+Рспек (/Кукумбер)+Капибара?

Если есть, отзовитесь

Думаю, мы могли бы помогать друг другу...Ну хотя бы время от времени:)

Ну и не только друг другу... мало ли, может кто-нибудь еще возжелает воспользоваться этими тулами... А тут - мы. В общем пишите, если захотите объединиться


(Mykhailo Poliarush) #4

я бы тоже послушал таких ребят, но вот знакомых которые делают что-то на capybara нет, к сожалению


(Дмитрий Жарий) #5

Да, у нас и Руби-шников не так много по сравнению с западом. Очень редко слышу о том, что куда-то требуются люди со знанием такого языка и технологий. Хотя, знаю, что один такой проект есть. Но, там не веб-UI тестирование. 


(ffess) #6

просто как-то получилось что выбор пал именно на Руби. Но я об этом было дело жалел только тогда, когда не мог живого человека найти вопросы позадавать (среди соотечественников), поэтому пришлось по иностранным ресурсам копаться. А вообщем тулы очень даже интересные, я за пару месяцев уже привык, ничего другого не хочется:) По крайней мере пока... 


(apetrovskiy) #7

Любопытно, а в какой области может быть проект? Хардверь или роутеры? Не гуй же...

Это железный руби или натуральный? (просто любопытно)


(Mykhailo Poliarush) #8

ну Руби отличный язык, динамичный. С ним легко и удобно. Было бы странно, если бы ты сказал, что хочешь перейти с руби на джаву :)

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

я должен признать, что инструментов автоматизации на руби не мало

просто действительно на СНГ не так расспространенно как заграницей


(KaNoN) #9

Что-то мне это WebRat напоминает (если это не он). Как уже ранее упоминали, веб-драйвер доступен через

page.driver.browser

Но на этом останавливаться не стоит, так как не очень хорошо, когда в тестах присутствует вызов методов сразу нескольких движков. Мы на подобном проекте сделали общий класс, который по сути наследовал функционал WebRat, но если вдруг чесались руки вызвать методы селениума/веб-драйвера напрямую, то для таких целей был волшебный метод

method_missing?

Это встроенный обработчик, который срабатывает, когда мы вызываем метод, которого в данном классе нет. В этом методе мы делали динамический вызов метода селениума (см. метод call). Соответственно, так мы объединили 2 движка под одним интерфейсом и можно было встретить что-то типа:

 

driver.fill_in 'Name', :with => 'Jimmy'

driver.type 'Name', 'Jimmy'

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