Работа над методом, пытающимся понять явное ожидание.Явное ожидание Selenium Webdriver
require 'rubygems'
require 'selenium-webdriver'
require 'cucumber'
$driver = Selenium::WebDriver.for :firefox
$driver.manage.timeouts.implicit_wait = 3
Then /^do search$/ do
driver = $driver
one_way = driver.find_element(:id, "search.ar.type.code.oneWay").click
sleep 5
from = driver.find_element :xpath => "//div[@class = 'origin column1']//input[@type = 'text']"
from.click
Таким образом, после one_way
радио-кнопка нажата и форма ввода изменилась, поэтому я ставлю sleep 5
, чтобы дать ему элемент времени, чтобы появиться, в противном случае была бы ошибка «элемент не видно ...». Поэтому я подумал, что было бы хорошо понять явное ожидание, потому что мне нужно подождать, пока не появится элемент.
wait = Selenium::WebDriver::Wait.new(:timeout => 40)
wait.until {from = driver.find_element(:xpath, "//div[@class = 'origin column1']//input[@type = 'text']")
from.click
}
Но получить ошибки "Селен :: WebDriver :: Error :: ElementNotVisibleError: Элемент в настоящее время не видно и поэтому не может быть взаимодействовали с". Почему этот код не дожидается появления элемента и щелкните его?
Смотрите первый фрагмент кода в следующем [ответ] (HTTP://stackoverflow.com/a/14701534/2998271) – har07
@ har07, спасибо. Я видел, что где-то некоторые исследования, но я пытаюсь понять, как взаимодействовать с элементом, используя команду click –