Skip to content
This repository has been archived by the owner on Aug 20, 2018. It is now read-only.

Profiles #58

Merged
merged 2 commits into from
Jul 10, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions pages/create_profile_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select

from selenium.webdriver.support.ui import WebDriverWait
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this was from selenium.webdriver.support.wait but this seems to work anyway.

from selenium.webdriver.common.keys import Keys
from datetime import datetime

Expand All @@ -17,7 +18,7 @@ class MozTrapCreateProfilePage(MozTrapBasePage):
_page_title = 'MozTrap'

_profile_name_locator = (By.ID, 'id_name')
_select_category_locator = (By.CSS_SELECTOR, '#profile-add-form .itemlist .bulkselectitem[data-title="%(category_name)s"] .bulk-value')
_select_category_locator = (By.CSS_SELECTOR, '#profile-add-form .itemlist .bulkselectitem[data-title="%(category_name)s"] .listitem .itembody .element[data-title="%(element_name)s"] label')
_delete_category_locator = (By.CSS_SELECTOR, '#profile-add-form .itemlist .bulkselectitem .action-delete[title="delete %(category_name)s"]')
_add_category_locator = (By.CSS_SELECTOR, '#profile-add-form .itemlist .add-item .itemhead')
_add_category_input_locator = (By.ID, 'new-category-name')
Expand All @@ -37,7 +38,7 @@ def create_profile(self, name='Test Profile', category_name='Test Category', ele
profile['category'] = u'%(category_name)s %(dt_string)s' % {'category_name': category_name, 'dt_string': dt_string}
profile['element'] = u'%(element_name)s %(dt_string)s' % {'element_name': element_name, 'dt_string': dt_string}
profile['locator'] = (self._profile_locator[0], self._profile_locator[1] % {'profile_name': profile['name']})
_select_category_locator = (self._select_category_locator[0], self._select_category_locator[1] % {'category_name': profile['category']})
_select_category_locator = (self._select_category_locator[0], self._select_category_locator[1] % {'category_name': profile['category'], 'element_name': profile['element']})
_add_element_input_locator = (self._add_element_input_locator[0], self._add_element_input_locator[1] % {'category_name': profile['category']})
_new_element_locator = (self._new_element_locator[0], self._new_element_locator[1] % {'category_name': profile['category'], 'element_name': profile['element']})

Expand All @@ -47,22 +48,20 @@ def create_profile(self, name='Test Profile', category_name='Test Category', ele
add_category = self.selenium.find_element(*self._add_category_locator)
add_category.click()

profile_category_field = self.selenium.find_element(*self.add_category_input_locator)
profile_category_field = self.selenium.find_element(*self._add_category_input_locator)
profile_category_field.send_keys(profile['category'])
profile_category_field.send_keys(Keys.RETURN)

element_field = self.selenium.find_element(*self._add_element_input_locator)
element_field = self.selenium.find_element(*_add_element_input_locator)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does this one locator not use self?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

element_field.send_keys(profile['element'])
element_field.send_keys(Keys.RETURN)
WebDriverWait(self.selenium, self.timeout).until(lambda s: self.selenium.find_element(*_new_element_locator))
self.selenium.find_element(*_select_category_locator).click()

self.selenium.key_down(_add_element_input_locator, '13')
self.wait_for_element_visible(_new_element_locator)

select_category = Select(self.selenium.find_element(*self._select_category_locator))
select_category.select_by_visible_text("select category")
self.selenium.find_element(*self._submit_locator).click()

return profile

def delete_environment_category(self, category_name='Test Category'):
_delete_category_locator = self._delete_category_locator % {'category_name': category_name}
self.selenium.find_element._delete_category_locator.click()
_delete_category_locator = (self._delete_category_locator[0], self._delete_category_locator[1] % {'category_name': category_name})
self.selenium.find_element(*_delete_category_locator).click()
4 changes: 2 additions & 2 deletions tests/test_manage_profiles_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ def test_that_user_can_create_and_delete_profile(self, mozwebqa_logged_in):

manage_profiles_pg.filter_profiles_by_name(name=profile['name'])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the test failed for me at this line.

E NoSuchElementException: Message: u'Unable to locate element: {"method":"id","selector":"text-filter"}\nCommand duration or timeout: 14.25 seconds\nFor documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html\nBuild info: version: '2.24.1', revision: '17205', time: '2012-06-19 17:28:14'\nSystem info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0_04'\nDriver info: driver.version: EventFiringWebDriver\nSession ID: 67cda6fe-e8bc-424b-846d-f696610bc347' ; Screenshot: available via screen ; Stacktrace: Method newInstance0 threw an error in None


Assert.true(manage_profiles_pg.is_element_present(profile['locator']))
Assert.true(manage_profiles_pg.is_element_present(*profile['locator']))

manage_profiles_pg.delete_profile(name=profile['name'])

Assert.false(manage_profiles_pg.is_element_present(profile['locator']))
Assert.false(manage_profiles_pg.is_element_present(*profile['locator']))

create_profile_pg.go_to_create_profile_page()
create_profile_pg.delete_environment_category(category_name=profile['category'])