Creating test framefork using PowerShell

Sometimes you need to test using PowerShell. The first thing to create assertion function. Below an example of implementation:

function Assert-Equals(
  $expected     = $(throw "Please, specify the expected object"),
  $actual     = $(throw "Please, specify the actual object"),
  [string] $message = "Assertion failed." )
  if(-not ($expected -eq $actual))
    throw "FAIL.  Expected: $expected.  Actual: $actual.  $message"

To be continued…

Selenium Web Driver: some tricks using Python

After migrating to Web Driver it took time to get with the following things:

* Selecting element from drop down list (now not just select command), e.g.:

el = driver.find_element_by_id('id_line')
for option in el.find_elements_by_tag_name('option'):
    if option.text == "line to select":

* If there are lot of element existence checks that wrapped in try-catch block it is useful to reduce implicit timeout to reduce overall test execution time, e.g. for Firefox driver:

def setUp(self):
    self.driver = webdriver.Firefox()
    self.verificationErrors = []

* Try to avoid time.sleep(N) commands in tests it is better to wait for some action or change in system. So the best way to make construction:

    if self.is_element_present(By.CSS_SELECTOR, "h3 > strong"):
        self.assertTrue(int(driver.find_elements_by_css_selector("#video_source")[0].text) >= 0)
        raise Exception( + ".ErrorText!")
except Exception as e: self.verificationErrors.append(str(e))

or wait by small ticks:

for i in range(60):
        if self.is_element_present(By.LINK_TEXT, "Exit"): break
    except: pass


else:"time out")

* Xpath is always slower in IE
* If some elements in DOM are hidden you can access them using JavaScript execution command driver.execute_script(script, *args)