On Wednesday, May 27, 2015 at 7:11:54 PM UTC+2, Rafael s wrote: > > 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] > <javascript:>" > @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? > It means that the driver cab't fins the CSS element you pass in, -
.btn.btn-lg.btn-success.btn-block in your case. > 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/d2359871-aa43-4258-bcbf-501af717a74e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

