Selenium Interview Questions

  •   To wait for a page to load, explicit wait can be used.
  •   Explicit waits stall until some specific condition is met.
  •   Sleep() is a form of explicit wait where the thread stalls for a specific duration of time, it may not be the most reliable way to wait for a page to load.
  •   Page Object Model in Selenium is a design pattern where web pages are represented using classes.
  •   Variables in the class can then be used to hold references to elements on the web page, and methods can be used to implement behaviors.
  •   This allows an elegant way of implementing test routines that are both readable and easier to maintain and extend in the future.
  •   Page Factory is used to initialize every WebElement variable with a reference to a corresponding element on the actual web page using configured.
  •   Annotations, can be used to define strategies for looking up elements, along with the necessary information for identifying them:
  •   In order to manipulate frame and its content you must switch to it first.
  •   This is similar to how you have to switch to a different page before you can interact with it: where index is the zero-based index of the frame.
  •   Switching the frame directs all further interactions through the driver towards the selected frame.
  •   The frame method also works with name, element ID and reference to already located elements.
  •  To switch back to the default frame, the defaultContent method can be used:
  •   CSS selectors are often easier to read than XPath.
  •   Most front-end developers are more likely to be familiar with CSS selectors already.
  •   Support for CSS selectors is quite consistent across various modern web browsers, which is not the case with their XPath engines.
  •   CSS selectors work faster than XPath.
  •   For various reasons, such as the ones outlined above, Selenium “best practices” advise the use of CSS selectors over XPath.
  •   Immediate child:
  •   An immediate child in XPath is defined indicated using “/”, while on CSS, it is indicated using “>”.
  •   For example, with XPath:
  •   and with CSS:
  •   Descendent:
  •   To find paragraph elements that are descendent to any div element
  •   (i.e. the paragraph element appears in the subtree rooted at the div element), we can use “//” in XPath, and just a whitespace in CSS:
  •  It defines a variable sample of type WebElement, and uses an XPath search to initialize it with a reference to an element that contains the text value “data”.
  •   This can be done by simulating key presses on the focused element.
  •   One way is to perform “actions” on the web driver object:
  •   An alternative way is to switch to the active element first, and send keys to it directly:
  •   Headless drivers are typically used in continuous integration (CI) setups.
  •   Headless drivers, such as PhantomJS, provide all standard web browser functionalities, but run in the command-line.
  •   These drivers are based on command-line tools and don’t produce screen output, making them ideal for completely automated setups.
  •   To be able to visually investigate test failures, the developer needs to implement mechanisms to capture screenshots, otherwise rely on command line output.
  •   Absolute XPaths, in terms of web pages, start with the root element:
  •   Relative XPaths, on the other hand, usually start with “//”:
  •   Even though both these XPaths probably refer to the same element on a certain web page,
  •   the former one is more likely to break with any change made to the page.
  •   For example, moving the table to inside of a div element will stop the absolute XPath from being able to locate the th element.
  •   On the other hand, the relative XPath will still continue to work.
  •   A hybrid framework is a combination of keyword- and data-driven frameworks.