Hi,
My scenario is:
- Access menu
- While icon “trash” exist, remove all
- If icon not exist, then add a new register
My code is:
require “selenium-webdriver”
require “rspec”
require ‘rspec/expectations’
describe “Current Expense” do
before(:all) do
@driver = Selenium::WebDriver.for :firefox
@base_url = “https://mysite.com”
@driver.manage.window.maximize
end
after(:all) do
@driver.quit
end
it “Login in the system” do
@driver.get(@base_url)
@driver.find_element(:id, “user_email”).send_keys
“[email protected]”
@driver.find_element(:id, “user_password”).send_keys “123456”
@driver.find_element(:name, “commit”).click
@driver.find_element(:xpath, “//*[@href=‘/expenses/current’]”).click
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
wait.until {@driver.find_element(:id => "expense_merchant")}
end
it “Remove and add new expense” do
begin
- while(@driver.find_element(:xpath, "//[@class=‘i i-trashcan
icon’]").displayed?) -
@driver.find_element(:xpath, "//*[@class='i i-trashcan
icon’]").click *
-
sleep 2*
-
@driver.find_element(:xpath, "//*[@class='btn
btn-primary’]").click *
- end *
rescue Selenium::WebDriver::Error::NoSuchElementError
@driver.find_element(:id, “expense_merchant”).send_keys “Taxi to
work”
@driver.find_element(:id, “expense_amount”).send_keys “50”
@driver.find_element(:xpath, “//*[@type=‘submit’]”).click
sleep 3
end
end
end
I need that work WHILE only in the block in bold in the above code,
otherwise runs the rescue
My problem is that WHILE not stay in the loop, it runs only once and
then
run the rescue. Why?
Cheers,
Rafael