#ruby #selenium #selenium-webdriver
Вопрос:
Я новичок в этом, так что это может быть очевидно, но я изо всех сил пытаюсь заставить свой тест запустить элемент «навигация». Или Возражать. Что бы это ни было. Вот мой код:
require "selenium-webdriver"
require "rspec"
# TEST: Sign up for blog
describe "Blog application" do
describe "signup to the blog application" do
it "confirm that a user can successfully signup" do
driver = Selenium::WebDriver::Firefox
# Go to signup form
driver.get "https://selenium-blog.herokuapp.com/signup"
# Fill out and submit form
username_field = driver.find_element(id: 'user_username')
username_field.send_keys("user")
В этом тесте есть еще кое-что, но это не имеет отношения к моему вопросу. Что я упускаю? Нужно ли мне устанавливать другой драгоценный камень или драйвер? Я везде искал этот ответ и не могу его найти.
Я также пробовал запускать его с:
driver.navigate.go
и это тоже не удается. Говорит, что не может найти элемент «навигация».
Спасибо за вашу помощь!
Ответ №1:
Вам не хватает инициализации нужного веб-драйвера. Однако вы не опубликовали свою текущую версию selenium, поэтому я предположил, что это последняя версия.
Вот о чем говорится в документации Selenium::WebDriver
.
.for(browser) ⇒ Driver
.for(browser, opts) ⇒ Driver
Создайте новый экземпляр драйвера с правильным мостом для данного браузера
Один специальный аргумент не передается мостам :слушатель. Вы можете передать прослушиватель для этой опции, чтобы получать уведомления о событиях WebDriver. Переданный объект должен отвечать на #вызов или реализовывать методы из AbstractEventListener.
Поэтому в вашем случае вам нужно изменить переменную драйвера
driver = Selenium::WebDriver.for(:firefox)
# ...
Комментарии:
1. Хорошо, я обновил свой скрипт, и теперь он выдает мне эту ошибку: Сбой/Ошибка: драйвер = Selenium::WebDriver.для(:firefox) ArgumentError: неверное количество аргументов (задано 1, ожидается 0)
2. Вот как сейчас выглядит сценарий:
<br>require "selenium-webdriver"<br/> require "rspec"<br/> <br/> # TEST: Sign up for blog describe "Blog application" do describe "signup to the blog application" do it "confirm that a user can successfully signup" do driver = Selenium::WebDriver.for(:firefox) # Go to signup form driver.navigate.to "https://selenium-blog.herokuapp.com/signup" # Fill out and submit form username_field = driver.find_element(id: 'user_username') username_field.send_keys("user")
3. пожалуйста, опубликуйте свою версию selenium. Его можно найти в файле Gemfile (если указано) или в файле Gemfile.lock
Ответ №2:
Вот простой код, который должен вам помочь
require 'selenium-webdriver'
driver=Selenium::WebDriver.for :firefox
driver.navigate.to("https://www.google.com/")