Ruby Selenium Webdriver无法找到并单击元素

Ruby Selenium Webdriver无法找到并单击元素,ruby,testing,selenium,selenium-webdriver,Ruby,Testing,Selenium,Selenium Webdriver,因此,我对Selenium非常陌生,但我正在使用Ruby绑定使用以下代码测试页面: require "selenium-webdriver" profile = Selenium::WebDriver::Firefox::Profile.new profile.secure_ssl = true driver = Selenium::WebDriver.for :firefox driver.manage.timeouts.implicit_wait = 10 # seconds driver

因此,我对Selenium非常陌生,但我正在使用Ruby绑定使用以下代码测试页面:

require "selenium-webdriver"
profile = Selenium::WebDriver::Firefox::Profile.new
profile.secure_ssl = true

driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 10 # seconds
driver.navigate.to "URL"
wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds

wait.until { driver.find_element(:id => 'next_button') }
driver.find_element(:id=> 'next_button').click
#More waiting and clicking and stuff.
所以当我把所有这些,一行一行地,输入到irb中时,它将完美地运行。但当作为脚本运行时,它的行为非常奇怪。有时它会单击某个元素,有时它不会。有时我必须在元素单击之前将鼠标悬停在它上面


有人见过这样的问题吗

您使用的是什么selenium和ff版本。。。当它失败时,错误消息是什么?Selenium Webdriver 2.33.0,FF 19.0.2。错误为“无法定位元素”,但元素已存在。我可以很容易地在控制台中找到它,就像我说的,它在irb中起作用。结果证明,我的好朋友们。这只是javascript动画的一个问题。我在加载后添加了一秒钟的睡眠时间,以允许动画,现在它工作得很好。您不需要硬编码睡眠,而应该尝试类似这样的操作:
wait.until{driver.find_元素(:id=>'next_button')。显示?}
为什么既有隐式的_wait,又有一个wait.until?这不是多余的吗?