Code libraries for AMO pages: Difference between revisions

Jump to navigation Jump to search
Line 1: Line 1:
== AMOlocators ==  
== AMOlocators ==
The module groups locators into dictionaries named for a page or list.  The dictionaries' keys are mnemonics for the element it locates.


Benefits:
The module groups locators into dictionaries named for a page or list. The dictionaries' keys are mnemonics for the element it locates.  
* Provide scripts writers a quick reference for time-consuming process of establishing a working locator.
* Changes to web pages which could break many scripts could be resolved by updating the module.
* Centralize 'best practices' for locator definition and 'tricks' to address complicated situations.


'''Naming convention of dictionaries'''
Benefits:


...'''_List[ ]''' references elements that appear once on a list, such as headers or sort selectors.
*Provide scripts writers a quick reference for time-consuming process of establishing a working locator.  
*Changes to web pages which could break many scripts could be resolved by updating the module.  
*Centralize 'best practices' for locator definition and 'tricks' to address complicated situations.


<blockquote>
'''Naming convention of dictionaries'''
...'''_List['item']''' references the item node on the list ''without'' an index, unlike the _List_Item[ ] locators described below. Could be used with an is_element_present to check if a list contains any items.
 
*Suitable for: get_xpath_count()
...'''_List[ ]''' references elements that appear once on a list, such as headers or sort selectors.
<blockquote>...'''_List['item']''' references the item node on the list ''without'' an index, unlike the _List_Item[ ] locators described below. Could be used with an is_element_present to check if a list contains any items.  
*Suitable for: get_xpath_count()  
*Example: itemCount = sel.get_xpath_count ( AMOlocators.addonBrowsePage''_List['item']'' )
*Example: itemCount = sel.get_xpath_count ( AMOlocators.addonBrowsePage''_List['item']'' )
</blockquote>
</blockquote>
...'''_List_Item[ ]''' references elements on a particular item in a list. All keys require an index value into the list.
 
*Suitable for: get_text(), get_attribute()
*Example 1: addonName = get_text( addonBrowsePage_''List_Item['name']''&nbsp;% idx ) retrieves the text for the name on the ''idx''-th add-on in the list.
*Example 2: addonHref = sel.get_attribute ( AMOlocator.addonCategoryLandingPage_TopRated''List_Item['link']''&nbsp;% idx + "@href" ) retrieves the href attribute in the link for the idx-th item on the Top Rated list on the add-on category landing page.
<blockquote>...'''_List_Item['item']''' references an item node on the list using an index. </blockquote>
<br>'''Locators that require an index value'''
 
Some locators require an index and must be followed by ''% value'' where ''value'' is the index required for them item in the list, such as add-ons in a list or options in a select.
 
Locators that require an index are named as followed:
 
*all locators in the ..._List_Item[ ] dictionaries.
*dictionary keys that end in ''Indexed''.
 
<br>'''Naming conventions for element locators and dictionary keys'''
 
Locators&nbsp;include the tag type at the end of the key for controls that have an action . For example: detailLink, sortSelect. Keys for static elements may use the tag type to reference a specific element, such as PreviewImg.
 
Dictionary keys that don't end with a tag type generally refer to a section of text or a high level node.<br>
 
'''name'''<br>


...'''_List_Item[ ]''' references elements on a particular item in a list.  All keys require an index value into the list.
*element with the item name.<br>
* Suitable for: get_text(), get_attribute()
*Suitable for sel.get_text(&nbsp;)<br>
* Example 1: addonName = get_text( addonBrowsePage_''List_Item['name']'' % idx ) retrieves the text for the name on the ''idx''-th add-on in the list.
* Example 2: addonHref = sel.get_attribute ( AMOlocator.addonCategoryLandingPage_TopRated''List_Item['link']'' % idx + "@href" ) retrieves the href attribute in the link for the idx-th item on the Top Rated list on the add-on category landing page.


<blockquote>
'''*Link'''<br>
...'''_List_Item['item']''' references an item node on the list using an index.
</blockquote>
<br>'''Locators that require an index value'''


Some locators require an index and must be followed by ''% value'' where ''value'' is the index required for them item in the list, such as add-ons in a list or options in a select.
*<span style="font-weight: bold;" />Refers to a link. The last element in the locator is an &lt;a&gt;.&nbsp; Key name may be simply ''link ''for an item with only a few elements.&nbsp; Key name may be prefixed with the link destination or the element containing the link.
*Suitable for sel.click( )
*Example: sel.click( AMOlocator.addonBrowsePage_List_Item['detail''Link''']&nbsp;% idx ) clicks on the detail page link for the idx-th add-on listed in the browse page.
*Suitable for sel.get_attribute for href or other attribute in the &lt;a&gt; node.<br>
*Example 2: sel.get_attribute( AMOlocator.addonCategoryLandingPage_TopRatedList['ViewAllLink'] +&nbsp;"@href" ) retrieve the href attribute from the View All link of the Top Rated list on the category landing page.<br>


Locators that require an index are named as followed:
<span style="font-weight: bold;">*</span>'''Select'''<br>
* all locators in the ..._List_Item[ ] dictionaries.
* dictionary keys that end in ''Indexed''.


<br>'''Naming conventions for element locators'''
*efers to select controls. The last node in the locator is a &lt;select&gt;.
*Suitable for sel.select()
*Example: sel.select( AMO_locators.addonsSearchResults['sortSelect'], 'value=' + sortOption) selects from the add-ons search results page the sort option with the 'value' attribute specified by sortOption.


...'''['...Link']''' refers to a link.  The last element in the locator is an <a>.
*'''Option''' <br>
<br>Suitable for: click( ) 
<br>Example 1: sel.click( AMOlocator.addonBrowsePage_List_Item['detail''Link'''] % idx ) clicks on the detail page link for the idx-th add-on listed in the browse page. 
<br>Example 2: sel.click( AMOlocator.addonCategoryLandingPage_TopRatedList['ViewAll''Link'''] ) clicks on the View All link of the Top Rated list on the category landing page.


...'''['...Select']''' refers to select controls. The last node in the locator is a <select>.
*Refers to options in a select control. The last node in the locator is an &lt;option&gt;.
<br>Suitable for: select()
<br>Example: sel.select( AMO_locators.addonsSearchResults['sortSelect'], 'value=' + sortOption) selects from the add-ons search results page the sort option with the 'value' attribute specified by sortOption.


...'''['...Option']''' refers to options in a select control.  The last node in the locator is an <option>.
<br>


== AMOfunctions ==
== AMOfunctions ==
1,072

edits

Navigation menu