【发布时间】:2016-01-20 09:03:30
【问题描述】:
处理试图理解显式等待的方法。
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
}
但出现错误“Selenium::WebDriver::Error::ElementNotVisibleError: Element is not current visible and so may not be interact with”。为什么此代码不等到元素出现并单击它?
【问题讨论】:
-
见下面answer第一个代码sn-p
-
@har07,谢谢。我看到在哪里做了一些研究,但我试图了解如何使用点击命令与元素交互
标签: ruby xpath selenium-webdriver