Hello Javix, 

Thanks for reply. Well, I'm using only selenium + rspec, no capybara.

I want to just make one condition: IF find the button...clicks, else 
continues execution of the other methods

Em quinta-feira, 28 de maio de 2015 05:05:09 UTC-3, Javix escreveu:
>
>
>
> 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]"
>>   @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 can check the displayed page by adding the below statement just before 
> your IF statement:
>
> save_and_open_page
>
> One more thing is to check if you enable selenium ddriver in your rspec 
> config file:
>
> Capybara.default_driver = :selenium
>
>
>
>
>

-- 
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/a904e385-6884-46de-beff-e385e4f3a957%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to