我使用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
它就像一个魅力。 当我尝试做一些事情,比如把方法放在另一个文件/助手
中 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'
答案 0 :(得分:0)
Ruby Cucumber魔法取决于World object。要使您的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)
答案 1 :(得分:0)
也许您可以尝试sleep
或等待该事件加载。当你运行测试时,测试已执行,但元素尚未存在。