Testing: Selenium: ZimbraSelenium Tips: Difference between revisions
No edit summary |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==General Information== | {{Archive}}==General Information== | ||
This page details some helpful tips regarding usage of the Zimbra Selenium Harness | This page details some helpful tips regarding usage of the Zimbra Selenium Harness | ||
Line 11: | Line 11: | ||
Using the most optimal locators is crucial for cross-browser compatibility. IE is notoriously slow for processing xpath locators. As per the [http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/Selenium.html Selenium documentation], the preferred format of locators is: | Using the most optimal locators is crucial for cross-browser compatibility. IE is notoriously slow for processing xpath locators. As per the [http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/Selenium.html Selenium documentation], the preferred format of locators is: | ||
# by CSS (i.e. locator="css=a[href='#id3']") | # by CSS (i.e. locator="css=a[href='#id3']") | ||
# by xpath (i.e. locator="//a(@href='@id3']") | # by xpath (i.e. locator="//a(@href='@id3']") | ||
# by Identifier (i.e. locator="DWT233") | |||
=====Translation: xpath to css===== | =====Translation: xpath to css===== | ||
Line 26: | Line 26: | ||
! description | ! description | ||
|- | |- | ||
| "xpath=//div[@id='foo']" || "css=div[id='foo']" || "foo" || | | "xpath=//div[@id='foo']" || "css=div#foo" || "css=div#foo" || div with id equals "foo" | ||
|- | |||
| "xpath=//div[@class='bar']" || "css=div.bar" || "css=div.bar" || div with class attribute equals "bar" | |||
|- | |||
| "xpath=//div[@id='foo' and @class='bar']" || "css=div#foo.bar" || "css=div#foo.bar" || div with id=foo and class attribute equals "bar" | |||
|- | |- | ||
| "xpath=//tr[contains(@attr,'partial']" || "css=tr[attr*='foo']" || "css=tr[attr*='foo']" || attr contains foo | | "xpath=//tr[contains(@attr,'partial']" || "css=tr[attr*='foo']" || "css=tr[attr*='foo']" || attr contains foo | ||
Line 33: | Line 37: | ||
|- | |- | ||
| - || "css=tr[attr$='foo']" || "css=tr[attr$='foo']" || attribute ends with foo | | - || "css=tr[attr$='foo']" || "css=tr[attr$='foo']" || attribute ends with foo | ||
|- | |||
| xpath=(//div[@id='foo'])@class || "css=div[id='foo']@class" || sGetAttribute("css=div[id='foo']@class") || CSS format for sGetAttribute() | |||
|- | |||
| xpath=//div//table || "css=div table" || "css=div table" || descendant | |||
|- | |||
| xpath=//div/table || "css=div>table" || "css=div>table" || child | |||
|} | |} | ||
==Links== | |||
See http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/ | See http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/ | ||
Line 41: | Line 51: | ||
See http://saucelabs.com/blog/index.php/2010/03/selenium-tips-finding-elements-by-their-inner-text-using-contains-a-css-pseudo-class/ | See http://saucelabs.com/blog/index.php/2010/03/selenium-tips-finding-elements-by-their-inner-text-using-contains-a-css-pseudo-class/ | ||
See http://www.ivaturi.org/home/hackingseleniumtoimproveitsperformanceonie | |||
Latest revision as of 17:25, 25 March 2015
General Information
This page details some helpful tips regarding usage of the Zimbra Selenium Harness
Code
Selenium
Preferred Locator Formats
Using the most optimal locators is crucial for cross-browser compatibility. IE is notoriously slow for processing xpath locators. As per the Selenium documentation, the preferred format of locators is:
- by CSS (i.e. locator="css=a[href='#id3']")
- by xpath (i.e. locator="//a(@href='@id3']")
- by Identifier (i.e. locator="DWT233")
Translation: xpath to css
For those familiar with xpath but not css, here are some tips for translation.
xpath | css | preferred | description |
---|---|---|---|
"xpath=//div[@id='foo']" | "css=div#foo" | "css=div#foo" | div with id equals "foo" |
"xpath=//div[@class='bar']" | "css=div.bar" | "css=div.bar" | div with class attribute equals "bar" |
"xpath=//div[@id='foo' and @class='bar']" | "css=div#foo.bar" | "css=div#foo.bar" | div with id=foo and class attribute equals "bar" |
"xpath=//tr[contains(@attr,'partial']" | "css=tr[attr*='foo']" | "css=tr[attr*='foo']" | attr contains foo |
- | "css=tr[attr^='foo']" | "css=tr[attr^='foo']" | attribute starts with foo |
- | "css=tr[attr$='foo']" | "css=tr[attr$='foo']" | attribute ends with foo |
xpath=(//div[@id='foo'])@class | "css=div[id='foo']@class" | sGetAttribute("css=div[id='foo']@class") | CSS format for sGetAttribute() |
xpath=//div//table | "css=div table" | "css=div table" | descendant |
xpath=//div/table | "css=div>table" | "css=div>table" | child |
Links
See http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/
See http://www.ivaturi.org/home/hackingseleniumtoimproveitsperformanceonie