I am using selenium page object model to define all the page elements. I am little unconvinced with the naming conventions that I have followed for naming the element and felt too long. Please suggest on this.
@FindBy(xpath = "//tbody[@id='tabview:listComp1_data']/tr/td[1]/div/div[2]")
public WebElement tableCompanyResultsRow;
@FindBy(xpath = ".//*[@id='mttAddId']")
public WebElement buttonAddMap;
@FindBy(xpath = ".//*[@id='ittAddId']")
public WebElement buttonAddItinerary;
@FindBy(xpath = "//div[@id='ajaxStatusPanel_start']/img")
public WebElement imageLoading;
All identifiers should begin with a letter (A to Z or a to z), currency character ($) or an underscore (_). After the first character, identifiers can have any combination of characters. A keyword cannot be used as an identifier. Most importantly, identifiers are case sensitive.
Naming ConventionsPackage names are written in all lower case to avoid conflict with the names of classes or interfaces. Companies use their reversed Internet domain name to begin their package names—for example, com. example. mypackage for a package named mypackage created by a programmer at example.com .
Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML).
A variable's name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign " $ ", or the underscore character " _ ". The convention, however, is to always begin your variable names with a letter, not " $ " or " _ ".
I have been using the below naming conventions for a long time and it helps understand and distinguish the UI elements.
For locators I always prefix loc_
to the variable name. For example: loc_btnExit
, etc.
+----------+----------------------------+--------+-----------------+ | Category | UI/Control type | Prefix | Example | +----------+----------------------------+--------+-----------------+ | Basic | Button | btn | btnExit | | Basic | Check box | chk | chkReadOnly | | Basic | Combo box | cbo | cboEnglish | | Basic | Common dialog | dlg | dlgFileOpen | | Basic | Date picker | dtp | dtpPublished | | Basic | Dropdown List / Select tag | ddl | ddlCountry | | Basic | Form | frm | frmEntry | | Basic | Frame | fra | fraLanguage | | Basic | Image | img | imgIcon | | Basic | Label | lbl | lblHelpMessage | | Basic | Links/Anchor Tags | lnk | lnkForgotPwd | | Basic | List box | lst | lstPolicyCodes | | Basic | Menu | mnu | mnuFileOpen | | Basic | Radio button / group | rdo | rdoGender | | Basic | RichTextBox | rtf | rtfReport | | Basic | Table | tbl | tblCustomer | | Basic | TabStrip | tab | tabOptions | | Basic | Text Area | txa | txaDescription | | Basic | Text box | txt | txtLastName | | Complex | Chevron | chv | chvProtocol | | Complex | Data grid | dgd | dgdTitles | | Complex | Data list | dbl | dblPublisher | | Complex | Directory list box | dir | dirSource | | Complex | Drive list box | drv | drvTarget | | Complex | File list box | fil | filSource | | Complex | Panel/Fieldset | pnl | pnlGroup | | Complex | ProgressBar | prg | prgLoadFile | | Complex | Slider | sld | sldScale | | Complex | Spinner | spn | spnPages | | Complex | StatusBar | sta | staDateTime | | Complex | Timer | tmr | tmrAlarm | | Complex | Toolbar | tlb | tlbActions | | Complex | TreeView | tre | treOrganization | +----------+----------------------------+--------+-----------------+
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With