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 "myemail@gmail.com"
@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