Search code examples
rubyselenium-webdriverrescuepageobjects

Why is my rescue block not working?


I am using selenium webdriver and trying to get a page object to look at a page multiple times before it reports a test failure. My problem is that a am getting an error that is not being caught by my begin rescue block.
here is the error

Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {"method":"id","selector":"does not exist"}

class ManageMembers < Nav

  def initialize
    super
    ready = false # Used to indicate if all elements expected are present 
    tryCount = 0# A counter to track the number of attempts to 
    while(ready == false)
      puts "initalizing managemembers"
      #things on the side menue 
      begin
        $driver.find_element(:id, "does not exist")
        $driver.find_element(:id, "sidebar")
        $driver.find_element(:id, "sidebar").find_element(:link, "Manage Members")
        $driver.find_element(:id, "sidebar").find_element(:link, "Create Member")
        @sidebar = true
      rescue @sidebar = false
      end

Solution

  • Adding this as an answer so we can mark this question as answered.

    class ManageMembers < Nav
      def initialize
        super
        ready = false # Used to indicate if all elements expected are present 
        tryCount = 0# A counter to track the number of attempts to 
        while(ready == false)
          puts "initalizing managemembers"
          #things on the side menue 
          begin
            $driver.find_element(:id, "does not exist")
            $driver.find_element(:id, "sidebar")
            $driver.find_element(:id, "sidebar").find_element(:link, "Manage Members")
            $driver.find_element(:id, "sidebar").find_element(:link, "Create Member")
            @sidebar = true
          rescue Exception => e 
            @sidebar = false
          end