Currently I'm trying use a statement IF (If a button appears in the page, 
then run the IF), see the method *Login in the system*:

If the button doesn't appear in the page, I would like to run the next 
method *Remove and add new expense*

require "selenium-webdriver"
require "rspec"
require "rspec/expectations"

describe "#Add simple expense and after add a receipt", :suitee => true do

before(:all) do
  @driver = Selenium::WebDriver.for :chrome
  @base_url = "http://sitetest.com";
  @driver.manage.window.maximizeend

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
    if(@driver.find_element(:css, 
".btn.btn-lg.btn-success.btn-block").displayed?)
        @driver.find_element(:css, ".btn.btn-lg.btn-success.btn-block").click
        @driver.find_element(:css, ".introjs-button.introjs-skipbutton").click
        @driver.find_element(:css, ".i.i-pencil").click
    endend

it "Remove and add new expense" do
  begin 
    while(@driver.find_element(:css, ".i.i-pencil.icon").displayed?)
     button = @driver.find_element(:id, "expense-bulk-select")
     @driver.action.click(button).perform 
     delete = @driver.find_element(:id, "delete-multi-btn")
     @driver.action.click(delete).perform
     waitDisplayModal = Selenium::WebDriver::Wait.new(:timeout => 10)
     waitDisplayModal.until {@driver.find_element(:class => 
"bootstrap-dialog-footer-buttons")}
     @driver.find_element(:xpath, "//div[3]/div/div/button[2]").click 
     sleep 3
  end rescue Selenium::WebDriver::Error::NoSuchElementError 
   @driver.find_element(:id, "current_expense_merchant").send_keys "Taxi to 
work" 
   @driver.find_element(:id, "current_expense_amount").send_keys "50"
   @driver.find_element(:id, "button-add-expense").click
   waitDisplayIconTrash = Selenium::WebDriver::Wait.new(:timeout => 20)
   waitDisplayIconTrash.until {@driver.find_element(:css => ".i.i-pencil.icon")}
 endend

 after(:all) do
  @driver.quit   
 endend


My problem: When I run this script, appears this in my console:

Failure/Error: if(@driver.find_element(:css, 
".btn.btn-lg.btn-success.btn-block").displayed?)
 Selenium::WebDriver::Error::NoSuchElementError:
   no such element
     (Session info: chrome=42.0.2311.135)
     (Driver info: chromedriver=2.9.248304,platform=Linux 3.13.0-24-generic 
x86_64)


That is, the IF is not working as I would like. How can I fix it?

CHeers

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/13389273-1da5-49a1-beda-2a850ec54e8b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to