[英]Ruby Selenium begin rescue
我将Cucumber与Ruby和Selenium结合使用。 在这种情况下,我需要检查该元素是否不在页面上,当我在Cucumber步骤中执行此操作时
Step file:
begin
expect(checkout_page.city_acctdetails.displayed?).to eql false
rescue Selenium::WebDriver::Error::NoSuchElementError
puts "City dropdown is not present"
false
end
它就像一个魅力。 当我尝试通过将as方法放置在另一个文件/帮助器中来进行操作时
RubyHelper.rb file
def self.not_present(locator)
begin
locator.displayed?
rescue Selenium::WebDriver::Error::NoSuchElementError
puts "Not present"
false
end
end
所以当我在黄瓜步骤文件中更改时
RubyHelper.not_present(checkout_page.city_acctdetails)
我收到错误消息:无法找到元素:{}(Selenium :: WebDriver :: Error :: NoSuchElementError)
要求声明:
#BDD framework that makes feature files running
require 'cucumber'
#Control remote browsers
require 'selenium-webdriver'
#Run tests in parallel
require 'parallel_tests'
#Use expect().to for verifying result
require 'rspec'
#Key value format for storing text data
require 'yaml'
红宝石黄瓜的魔术依赖于一种被称为World对象的东西。 要使您的RubyHelper文件可用于您的步骤定义,您需要:
RubyHelper.rb文件
require 'cucumber'
require 'selenium-webdriver'
require 'rspec'
module MyHelper
def not_present(locator)
begin
locator.displayed?
rescue Selenium::WebDriver::Error::NoSuchElementError
puts "Not present"
false
end
end
end
World(MyHelper)
也许您可以尝试sleep
或等待该事件加载。 当您运行测试时,测试已经执行,但是元素还不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.