2016-06-22 88 views
1

我想運行一個腳本,我打開一個網頁,並尋找一個特定的元素。如果該元素存在,我想把'找到元素',如果該元素不存在放置'未找到'。我總是得到錯誤「找不到元素」Ruby Selenium WebDriver:.displayed?方法不工作

我試着照做here但它仍然沒有工作。我想這是比較容易的,但我真的不明白我在做什麼錯:

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for:firefox 
driver.manage.timeouts.implicit_wait = 5 
driver.get 'http://www.example.com' 

case driver.find_element(:class_name,'example').displayed? 
when true 
    puts 'ELEMENT FOUND' 
when false 
    puts 'NOT FOUND' 
end 

if聲明:

#the rest is identical as in the above example 
if (driver.find_element(:class_name,'example').displayed?) 
    puts 'ELEMENT FOUND' 
else 
    puts 'NOT FOUND' 
end 

回答

2

element無法找到,所以.displayed不能決心。 .displayed只能在已存在且已找到的元素上調用

如果你想查詢的elementexistence,你應該如下嘗試: -

if (driver.find_elements(:class_name,'example').size > 0) 
puts 'ELEMENT FOUND' 
else 
puts 'NOT FOUND' 
end 

希望它會幫助你... :)

+0

謝謝!這正是我一直在尋找的! – Acolli

+0

@Acolli歡迎您..請看看http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –