Tuesday, July 24, 2018

TestNG කොහොමද Use කරන්නේ ?

July 24, 2018 1
අද පාඩම...

TestNG ගැන 




හරි මුලින්ම මොකක්ද මේ TestNG  කියන්නේ ?

TestNG  කියන්නේ Annotation Based  Unit  Testing  Framework  එකක් (තේරුනේ නෑ  කියල දන්නවා )

මෙන්න මෙහෙමයි..

පහල Screenshot එකේ තියෙන්නේ chrome browser එක Open කරලා https://www.phptravels.net/admin කියන වෙබ් සයිට් එකට ගිහින් එකේ තියෙන ලොගින් එකට ලියපු ටෙස්ට් script එක 

මේකේ පෙන්වා ඇති මම test 4ක් ලියල තියෙනව 




Test  01 - Valid Username  එකයි Valid  Password එකයි  enter කරල ා ලොග් වෙන Test  එක 
Test  02 - Invalid Username  එකයි Invalid Password එකයි  enter කරල ා ලොග් වෙන Test  එක  
Test  03 - Valid Username  එකයි Invalid Password එකයි  enter කරල ා ලොග් වෙන Test  එක  
Test  04 - Invalid Username  එකයි Valid  Password එකයි  enter කරල ා ලොග් වෙන Test  එක  

සාමාන්යෙන් මෙතන මන් ලියල තියෙනවා ලොගින් එකක් ටෙස්ට් කරන්න ඕන  හැම Test  Case  එකක් වගේ

මෙතන තියෙන අවුල තමයි ඔයාලට පෙන්වා ඇති හැම Test Method එකේදිම මම
1. Webdriver Instance එකක් හදන Code එක WebDriver driver;
2. Browser  එක Maximize කරන Code එක driver.manage().window().maximize();
3. Browser එක Open කරන Code එක driver = new ChromeDriver();
4.සයිට් එකට යන Code එක driver.get("https://www.phptravels.net/admin");
5.Browser  එක Close කරන code එක driver.close();

කියන Code line පහ හැම test එකේදිම නැවත නැවත ලියලා තියෙනවා 

මෙන්න මේ හින්ද Code එක ටිකක් ලොකු වෙලා තියෙනවා වගේම code repetition එකත් සිද්ද වෙලා තියෙනවා 

මෙන්න මේ අවුල අකා මකා දමන්නයි Code  එක තව දුරටත් manage කරන්නයි  තමයි අර මම මුලින්ම කිව්ව Annotation Based  Unit  Testing  Framework එක උඅදව්වට එන්නේ 

එක වෙන්නේ මෙහෙමයි 

TestNG  කියන Annotation Based  Unit  Testing  Framework එකේ තියෙනව Annotation කියල ජාතියක් ඒවා තමා 


@Test 
@BeforeSuite
@AfterSuite
@BeforeTest
@AfterTest
@BeforeGroups
@AfterGroups
@BeforeClass
@AfterClass
@BeforeMethod
@AfterMethod


(තව තියෙනවා දැනට මුලිකවම ඕන වෙන ටික විතරක් බලමු )


මෙන්න මේ Annotation Use කරගෙන අපිට පුළුවන් අපේ Code  එකේ මම කලින් කිව්ව code repetition එක වගේම Code එක Manage කරගන්නත් පුළුවන් වෙනවා 

හරි පලවෙනි එක නම් දැනටම අපි නොදැනුවත්වම Use කරලා තියෙන්නේ @Test මොකක් හරි method එකකට උඩින් @Test  Annotation එක තියෙනවා කියන්නේ ඒ method එක Test method එකක් කියන එක , සාමාන්යෙන් ඔයාල දන්නවා ඇති අපිට java code එකක් run කරන්න ඕන නම් අපිට අනිවාර්යෙන්ම Main Method එකක් තියෙන්න ඕන කියන එක 


public static void main(String[] args) {   
}

එත් ඔයාගේ ඕනෑම method එකට උඩින්  @Test  Annotation එක තියෙනවා නම්  ඒ   method එක ඔයාට Main Method එකක් නැතුව run කරන්න පුළුවන් 

EX - 



මේකෙදි 

public static void main(String[] args) {   
}




කියන Main Method එක නැති උනත් අපිට මේ loginWithValidUsernameAndValidPassword කියන method එක run කරන්න පුළුවන් මොක්දට ඊට උඩින් @Test  Annotation එක තියෙන නිසා 


දෙවෙනි එක විදිහට මම ගන්නේ @BeforeMethod කියන Annotation එක නම දැක්ක ගමන්ම idea එකක් ගන්න පුළුවන් නේ , 

ඒ කියන්නේ මේ Annotation එකට යටින් තියෙන method එකේ තියෙන code එක හැම method එකකට කලින්ම Execute වෙනවා , හරියට නිකන් බත් කන්න කලින් අත් හෝදනවා වගේ 



දැන් තේරෙන්න ඕන වැඩේ @BeforeMethod කියන Annotation එක යටින් තියෙන Code line ටික තමා මුලින්ම Execute වෙන්නේ එහ්මත් නැත්තම් Run වෙන්නේ 

ඒ ටික ඉවර උනාම තමයි  @Test  Annotation එකට යටින් තියෙන Code line ටික  Execute වෙන්නේ

අත හෝදන්නේ 1 දී බත් කන්නේ 2 දී 

ඒ හින්ද 

1. Browser  එක Maximize කරන Code එක driver.manage().window().maximize();
2. Browser එක Open කරන Code එක driver = new ChromeDriver();
3.සයිට් එකට යන Code එක driver.get("https://www.phptravels.net/admin");

කියන code line ඔක්කොම ටික මම ගලවල දැම්ම @BeforeMethod කියන Annotation එක යටින් තියෙන method  එකට ,  දැන් 

1. Browser  එක Maximize කරන Code එක driver.manage().window().maximize();
2. Browser එක Open කරන Code එක driver = new ChromeDriver();
3.සයිට් එකට යන Code එක driver.get("https://www.phptravels.net/admin");

ටික ඔක්කොම @BeforeMethod කියන Annotation එක යටින් තියෙන method  එකේ දී වෙන හින්ද  මම 
@Test  Annotation එකට යටින් තියෙන Code එකෙන් ඒවා ටිකComment  කරලා දැම්ම 

Webdriver Instance එකක් හදන Code එක WebDriver driver;

එක මොකද උඩින්ම දල තියෙන්නේ කියල හිතෙන්න පුළුවන් කාට හරි, එකට හේතුව තමයි Webdriver Instance එක අපි හැම තැනම Use කරන නිසා එක Public  Access කරන්න පුළුවන් Place එකක තිබ්බ ා, එකත් අපි 
@BeforeMethod එක ඇතුලට දැම්මොත් අපිට ඒ Webdriver Instance එක @BeforeMethod එකට පිටින් කිසිම තැනකදී Access කරන්න බැරි වෙනවා , මම කලින් පොස්ට් වල කිව්වා Webdriver Instance නැතුව අපිට click කරන්න Type කරන්න මොකුත් කරන්න බැරි වෙනවා ඒ  හින්දා , හැම ටෙස්ටෙකකටම Access කරන්න පුළුවන් විදිහට ඇනයක් ගහල උඩින්ම තිබ්බා Webdriver Instance එක 


තුන්වෙනි එක විදිහට මම ගන්නේ @AfterMethod කියන Annotation එක කලින් එක බත් කන්න කලින් අත හේදුව එක නම් මේක බත් කවට පස්සේ අත හෝදන එක වෙන්න ඕන 

ඒ කියන්නේ @BeforeMethod එකේ තියෙන ටික වෙලා @Test එකේ තියෙන ටිකත් උනාට පස්සේ තමයි මේ @AfterMethod කියන Annotation එකට යටින් තියෙන Code  Line ටික Execute වෙන්නේ 




දැන් තේරෙන්න ඕන ගොනාට වගේ 

මේක තමා Execution Order එක 

1.BeforeMethod -- කෑමට පෙර අත හේදීම  
2.Test  -- කෑම 
3.AfterMethod -- කෑමට පසු අත හේදීම 

මම @AfterMethod කියන Annotation එකට යටින් දැම්මා  Browser close වෙන එක මොකද Test එක ඉවර උනාම අපිට වෙන්න ඕන Browser එක close වෙන එක නිසා , එහම දාල මම driver .close (); එක Test එක ඇතුලෙන් Comment කරල  දැම්ම

කලින් තිබ්බ  සම්පුර්ණ code එක ඔය විදිහටTestNG  Annotation  දාලා හරිගස්සුවම මෙන්න මෙහෙම දිස් වෙයි 



දැක්ක නේ දැන් අපේ test එක ඇතුලේ තියෙන්නේ test එකට ඕන කරන ඒවා විතරමයි 

Test එකට කලින් වෙන්න ඕන, Browser එක Open කරන එක Site එකට යන එක Browser එක Maximize කරන එක එක තැනක විතරයි තියෙන්නේ මුළු project එකටම ඒ @BeforeMethod එක ඇතුලේ 


Test එක ඉවර උනාම වෙන්න ඕන, Browser එක Close කරන කරන එකත්  එක තැනක විතරයි තියෙන්නේ මුළු project එකටම ඒ @AfterMethod එක ඇතුලේ 

@Test  එක ඇතුලේ තියෙන්නේ අත්තටම Test එකදි වෙන්න ඕන ඒවා ටික විතරයි 

Test එක හරියට ලියලා Public Class  LoginTest () කියන class name එක ගාව තියෙන කොලපාට run icon එක click කරොත් බලාගන්න පුළුවන් කොහොමද code එක run වෙන පිළිවෙල කියලා 

මේ වීඩියෝ එකෙන් බලාගන්න පුළුවන් කොහොමද මේ project එක හදන්නේ කියන එක 





මම මේ Script එකේ Username  සහ Password  එක දන එක කරේ නෑ (ඒ දෙක ඒ වෙලේ අමතක උන හින්ද 😂)

Valid Username - admin@phptravels.com
Valid Password - demoadmin

invalid ඒවා තමන්ට කැමති විදිහට දාගන්න පුළුවන් ඉතින් 

මම කරපු project එක Download කරගන්න පුළුවන් පහල තියෙන ලින්ක් එකෙන් 

https://bitbucket.org/ssluni/testng-annotations/downloads/

දැන් අර මම මුලින් කිව්ව code repetition එක වගේම Code එක Manage කිරීමත් සිද්ද වෙලා තියෙනවා අපේ code එක ඇතුලේ 

අනිත් Annotation ගැන ඒවා Use වෙන වෙලාවට ලස්සනට පැහැදිලි කරන්නම් 

මෙන්න ඔක්කොම Annotation ගැන අදහසක් ගන්න ලින්ක් එකක් 
http://testng.org/doc/documentation-main.html#annotations

මෙන්න TestNG ගැන හොද විස්තරයක්

https://www.guru99.com/all-about-testng-and-selenium.html

අසා සිටිය  ඔබ සැමට ස්තුති...

ඊලග පාඩම Test එකක Result එක Assert කරගන්න විදිහ ගැන



Saturday, June 16, 2018

Login Automation Script With Download Browser Drivers Automatically ටු ප්‍රොජෙක්ට්

June 16, 2018 1
මාත් මගේ  බ්ලොග් එක දැක්කේ අහම්බෙන් , ගිහින් බලනකොට බ්ලොග් එකේ Stats  දිහාට හොදයි වගේ


ඒ හින්දා අලුත් පොස්ට් එකක් ලියන්න හිතුනා ඒ වෙලේම

හරි අද කොරන්න යන්නේ මෙන්න මේ http://opensource.demo.orangehrmlive.com/ එකේ ලොගින්
එකට පොඩි test automation ස්ක්‍රිප්ට් එකක් ලියන්න

අද ලියන ස්ක්‍රිප්ට් එක දැනට ලියන්න  පුළුවන් උපරිමෙන්ම හොදට ලියන්න බලමු අපි
(අලුත්ම වැඩ කෑලි ටිකක් දාන්න යන්නේ Automatically Download Browser Drivers )

හරි මුලින්ම InteliJ IDEA  දෙයියෝ open කරගන්න


මෙහම තමයි දෙයියෝ වැඩම කරනකොට පෙන්නුම් කරන්නේ , දෙයියෝ ඉන්ස්ටෝල් කරන විදිහ කලින්
පොස්ට් එකක කව්වා වගේ මතකයි මට

හරි දෙයියෝ open උනාට පස්සේ

File → New → Project  ගන්න

එතකොට එන මේ view  එකෙන් Maven select කරලා Next  කරන්න


මෙව්වා කියල දුන්නා වගේ මතකයි මට

ඊළගට එන්නේ මේ view එක එකේ GID එකයි AID එකයි කොටලා Next කරන්න



මම GID එක විදිහට දීලා තියෙන්නේ GID එක දෙන විදිහ ඒ කියන්නේ

com.companyname.projectname  (ඔක්කොම සිම්පල් වලින් )

Ex:- උබ වැඩ කරන්නේ xyz කියලා company එකකට කියලා හිතපන්කෝ , ඒ xyz company එකේ තියෙන
project බරගනකින් උබ වැඩ කරන්නේ ohrmp කියන project එකේ නම් GID එක වෙන්නේ

com.xyz.ohrmp

එතකොට AID  එක වෙන්නේ only project name  ඒ කියන්නේ ohrmp විතරයි

මෙන්න මෙහම


එහම කොටලා නෙක්ස්ට් කරන්න එතකොට එන view එකේ project name එක auto fill වෙලාම එයි එකේ
ඔක්කොම සිම්පල් වලින් එන්නේ project name එකේ  පලවෙනි අකුර කැපිටල් කරාම ලයින් නේ,
ඒ හින්දා එක විතරක් කරලා ෆිනිෂ් කරන්න

ෆිනිෂ් කරපු  ගමන් ම එයි දකුණු පැත්තේ පහලින් මෙන්න මෙහම


ඔකේ Enable Auto - Import එක click කරන්න

මෙන්න මෙහම වෙන්න ඇති පෙන්නනවා ඇත්තේ දැන් view එක



ඔකේ මන් රතු පාටින් මාර්ක් කරලා තියෙන එක click කරලා පproject එක expand කරාම
මෙන්න මෙහම පෙන්නයි සහෝදරවරුනි


හරි දැන්  කේක් ගෙඩිය හදන්න ඕන කරන බඩු ටික ගන්න යන්නේ

සෙරෙප්පු දෙක දාගෙන යන්න https://mvnrepository.com/ එකට
ඕක තමයි අපේ බඩු ගන්න තියෙන super මාර්කට් එක

ඔන්න හැම automation script එකකටම ඕනම  කරන බඩු ලිස්ට් එක , කොහේ හරි ලියන් හිටියට පාඩු නෑ
  1. Selenium java
  2. Testng
  3. Webdriver Manager (අලුත්ම එක , මේක තමයි රසම එක )

හරි https://mvnrepository.com ගිහින් ඔය එකෙන් එක Search කරන්න ඕන , මුලින්ම

Selenium Java කියල කොටලා search button එක උඩ කොටන්න එතකොට එයි මෙන්න මෙහම


එකේ මන් ඔය Highlight කරලා තියෙන එක උඩින් click කරාම  එයි මෙහම view එකක් ,
මේකේ පෙන්නන්නේ මෙච්චර කල් ආව selenium java versions  
දැන් අපි කරන්න ඕන මේ ලිස්ට් එකේ තියෙන උඩම එක click කරලා (3.12.0) එකේ දෙන code කෑල්ල copy
කරගන්න එක , copy කරන්න ඕන නෑ click කරපු ගමන්ම කෝඩ් එක උඩ ඒක automatically copy වෙනවා




දැක්කනේ කෝඩ් කෑල්ල

හරි දැන් මේ ගත්ත එක අතේ තියාගෙන ඉදලා හරියන් නෑ , ගිහින් දාන්න ඕන project එකට

අපි open කරගත්ත project එකේ ඇති pom.xml කියලා file එකක්
ඒක ඩබල් ක්ලික් කරාම මෙහෙම එකක් intelij එකේ දකුණු පැත්තෙන් open වෙයි



ඔන්න ඕකට තමයි අපි අර ගත්ත එක දන්නා ඕන

දන්නේ මෙන්න මෙහෙම

<version>1.0-SNAPSHOT</version>

එකට යටින් ඔයාලා open කරන්න ඕන
<dependencies > කියලා tag එකක් open කරපු ගමන්ම එකේ close ටැග් එක automatically වැදෙයි
අන්න ඒ open tag එකයි close tag එකයි අතර පොඩි space එකක් හදාගෙන
අර copy කරගත්ත එක එතනට paste කරන්න එතකොට මෙන්න මෙහම දර්ශනය වෙයි


හරි දැන් තාම එක බඩුව නේ ගත්තේ , ආයි ගිහින් https://mvnrepository.com/ එකට search කරන්න
list එකේ තිබ්බ දෙවෙනි item එක TestNG

එකත් අර විදිහටම එන ලිස්ට් එකෙන් පලවෙනි එක තෝරාගෙන
එකේ අලුත්ම version එක(6.14.3) අරගෙන එකේ තියෙන code කැල්ල copy කරගෙන ඇවිල්ලා
දාන්න අර කලින් එක දැම්ම තැනට පහලින් මෙන්න මෙහම





දැන් බඩු දෙකක් හරි , ඊලග එකටත් ඒ විදිහටම කරන්න ඕන එකට කලින් ඒක ගැන පොඩ්ඩක් හදුන්වලා දෙන්නම්

ඉස්ස්සර අපි  automation script එකක් ලියනකොට එක එක browser එකට අදාල වෙන driver එකක් download
කරගෙන project එකට දාන්න ඕන නැත්තම් අපිට බෑ ඒ අදාල browser එක open කරගන්න

(මම මේක ගැන කලින් පොස්ට් එකක පැහැදිලිවම කිව්වා )

එත් දැන් මේ අපි ගන්න ඉන්න බඩුව හින්ද
අපිට එහම driver එකක් download කරලා project එකට දාගන්න ඕන වෙන්නේ නෑ ,
වැඩේ තවත් ලේසි වෙලා මේකෙන් වෙන්නේ අපි scrip එක ලියල run කරනකොට
අදාල driver එක download කරගන්නවා.
එක වෙන විදිහ බලමු පස්සේ දැන් ගහින් අර විදිහටම එක කඩෙන් ගන්න තියෙන්නේ




කේක් එක හදන්න ඔනම බඩු ටික ඔක්කොම project එකට දාගත්තම මෙන්න මෙහම පෙන්නයි



හරි දැන් හදන්න තමා තියෙන්නේ කේක් ගෙඩිය

මුලින්ම project view එකේ src එක expand කරලා එකේ test එක expand කරලා
එකේ තියෙන java එක right click කරලා හදන්න අලුත් class එකක් LoginTest  කියලා
(main එකේ නැතුව test එකේ මොකද class එක හදන්නේ කියලා කලින් පොස්ට් එකක කියලා දුන්නා මන් )


හරි දැන් ඒ හදාගත්ත class එක ඇතුලේ මුලින්ම කරන්න ඕන Selenium Webdriver එකෙන් instance එකක් හදාගන්න එක ,
සරලව කිව්වොත් මේ selenium webdriver  එකේ තමයි තියෙන්නේ අපිට ඕන කරන ඔක්කොම code ,
ඒ කියන්නේ අපිට browser එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න මොකක් හරි මකන්න
මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක ඇතුලේ  
ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න

මම driver කියාලා instance එකක් හදාගන්නවා webdriver එකෙන් මෙන්න මෙහම


දැන් අපිට පුළුවන් driver කියන එක හරහා Webdriver  එකේ තියෙන ඕනෑම code එකකට කතා කරලා වැඩක් කරගන්න (අපි කඩෙන් ගත්ත පලවෙනි බඩුවෙන් තමයි මෙන්න මේක කරගත්තේ )

හරි ඊළගට ඒ හදාගත්ත instance එක යටින් මම

@Test කියලා annotation එකක් ගහනව මේක එන්නේ අපි කඩෙන් ගත්ත දෙවෙනි බඩුවෙන් ,
මෙහම @Test කියල annotation එක දාපු ගමන්ම එකට යටින් අනිවාර්යෙන්ම method එකක් ලියන්න ඕන මෙන්න මෙහම


මම මෙතන ලියල තියෙන method එක තමයි validLogin කියන method එක, මම ඒ method එක ඇතුලේ කරන්න ඉන්නේ අර මම මුලින්ම කිව්ව site එකට (http://opensource.demo.orangehrmlive.com/ )
ලොග් වෙන එක

හරි දැන් ඒ වැඩේ කරන්න යන්නේ මුලින්ම ඕන අපිට browser එක open කරගන්න නේ
අන්න එකට මම අර 3න වෙනි බඩුව use කරනවා මෙන්න මෙහම


දැක්කද මේකෙන් කියන්නේ chrome browser එක ලෑස්ති කරන්න කියලා open කරන්න, හරි සිම්පල්  උබලට ඕන firefox open කරගන්න නම් දාන්න ඕන

WebDriverManager.firefoxdriver().setup();

කියලා , internet explorer නම්  

WebDriverManager.iedriver().setup();

Edge  නම් (Windows 10)

WebDriverManager.edgedriver().setup();

හැබැයි එක පාරකට එකයි (එක බ්‍රොව්සෙර් එකයි open කරන්න පුළුවන් )ඔක්කොම එකපාර දල වැඩේ කරන්න යන්න
එපා

ඊලග කෝඩ් ලයින් එකෙන් මන් කරන්න හදන්නේ ලෑස්ති කරගත්ත browser එක open කරන එක

ඊට කලින් කඩෙන් ගෙන්වා බඩු වල පාවිච්චිය කොහොමද බලමු පොඩි ෆොටෝ කෑල්ලකින්


තේරුණා නේ දැන් ගේනව ඒවගෙන් අපතේ යමක් උනේ නෑ ඔක්කොම පාවිච්චි කර කියලා

හරි මන් කිව්වා  ඊලග කෝඩ් ලයින් එකෙන් මන් කරන්න හදන්නේ browser එක open කරන එක කියලා
එක කරන්නේ මෙන්න මෙහම



මේක සුද්ද සිංහලෙන් කව්වොත් අර ලෑස්ති කරගත්ත chrome browser එක driver කියන instance එකට කියලා open කරගත්තා වගේ වැඩක්

Selenium වල default  browser එකක් open වෙන්නේ ටිකක් පොඩියට ඒ හින්දා ඒක ලොකු කරගන්න
පොඩි code line එකක් මන් මෙහම ලියනවා


දැක්කද මම අර කලින් කිව්වේ “සරලව කිව්වොත් මේ selenium webdriver  එකේ තමයි තියෙන්නේ අපිට ඕන කරන
ඔක්කොම code ,ඒ කියන්නේ අපිට browser  එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න
මොකක් හරි මකන්න මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක
ඇතුලේ  ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න ”

දැක්කද දැන් ඒ කිව්වා විදිහට හදාගත්ත driver  කියන instance එක හරහා මම Webdriver එකට කව්වා
browser එක open කරන්න කියලා මුලින්, ඊට පස්සේ  ඒ instance එක හරහාම කිව්වා මන් browser එක maximize
කරන්න කියලත් , ඔය Chromedriver() සහ manage().window().maximize() කියන කෝඩ් තියෙන්නේ   
 Webdriver එක ඇතුලේ , ඒවාට කතාකරන්න කෙලින්ම බෑ එකට හදාගත්ත නියෝජිතයා තමයි driver කියන්නේ ,
හරියට නිකන් අපිට වැඩකට ඕන සල්ලි අප්පගෙන් ඉල්ලලා දෙන්න  අම්මට කියනවා වගේ

අප්පා  = Webdriver  
අම්මා  = driver

හරි ඊළගට browser එක open කරගෙන කට අරන් බලා ඉදල හරියන්නේ නැ නේ ,
ඊළගට ඕන මම අර මුලින්ම කිව්වා site එකට යන්න, එක කරන්නේ මෙන්න මෙහම

driver.get("http://opensource.demo.orangehrmlive.com/");

දැනට තියෙන ටිකෙන් අපි script එක run කරාම ඔය වැඩ ටික හරියට උනා නම් අපි ඉන්නේ
මෙන්න මේ view එකේ ඒ කියන්නේ අදාල site එකට ඇවිල්ලා

දැන් ඊළගට කරන්න ඕන ඔය view එකේ තියෙන username  field එකේ username එකයි password field
එකේ password එකයි type කරලා login button එක click කරන එක

වැඩි කතා ඕන නැ browser එකෙන් http://opensource.demo.orangehrmlive.com/ site එකට manually ගියා ඉස්සලම ඕන කරන username ෆිඑල්ඩ් එක right click කරලා inspect element ගියා
එතකොට පෙන්නයි ඒ element එකේ ඔක්කොම විස්තර
(element catch කරන විදිහ මම කලින් පොස්ට් එකේ කියල තියෙන්නේ )



ඔන්න ඔය විදිහට , මම පහලින් දාන්නම් username ෆිඑල්ඩ් එකේ සම්පුර්ණ element එක

<input name="txtUsername" id="txtUsername" type="text" autocomplete="off">

මේ element එකේ තියෙනවා  id="txtUsername" කියලා කැල්ලක් ඒ කියන්නේ අපිට පුළුවන්
මේ view එකේ නැත්තම් මේ webpage එකේ username field එක uniquely identify කරගන්න මෙන්න මේ
 id="txtUsername" කියන එකෙන්, දැන් මට ඕන username field එකේ username එක type කරන්න නේ
අන්න එකට මම මේ  id="txtUsername" කියන එකත් use කරගන්නවා මෙන්න මෙහම

driver.findElement(By.id("txtUsername")).sendKeys("Admin");

දැක්කනේ මම කිව්වා කලින් විදිහටම driver කියන instance එකට id එක txtUsername කියන field එක හොයාගෙන
එකේ Admin කියලා type කරන්න කියලා , හරිම සිම්පල්

ඊළගට ඕන password field එකේ password එක type කරන්න නේ එකත් මේ විදිහමයි

ඉස්සලම inspect element යනවා



<input name="txtPassword" id="txtPassword" type="password">

මේකෙත් තියෙනවා id="txtPassword"කියල අන්න එක use කරගෙන
 password field එකේ password එක type කරන්නේ මෙන්න මෙහම

driver.findElement(By.id("txtPassword")).sendKeys("admin");

හරි ඊළගට ඕන ලොගින් button එක click කරන්න නේ එකටත් මුලින්ම inspecr element යනවා
ගහින් ගන්නවා ඒ element එකේ විස්තර


<input type="submit" name="Submit" class="button" id="btnLogin" value="LOGIN">

එකෙත් තියෙනවා id="btnLogin" එක use කරගෙන ලොගින් button එක click කරන්නේ මෙන්න මෙහම

driver.findElement(By.id("btnLogin")).click();

අන්තිමට
driver.close();

කියලා code line එකක් දාගන්න අන්තිමටම
මේකෙන් වෙන්නේ අදාල වැඩ ටික ඉවර වෙලා browser එක close වෙන එක

ඔක්කොම හරියට ලිව්වා නම් මෙන්න මෙම තියෙන්න ඕන කේක් ගෙඩිය


Public void validLogin() කියන මෙතඩ් නේම් එක ඉස්සරහ තියෙන
කොළ පට ඉතලේ click කරලා scrip එක රන් කරන්න පුළුවන් එතකොට browser එක
automatically open වෙලා  http://opensource.demo.orangehrmlive.com/ එකට ගහින් එකේ
automatically ම username එකයි password එකයි type කරලා ලොගින් button එකත් click කරලා
බ්‍රොව්සෙර් එක automatically ම close වෙලා යයි

මන් අනිත් browser වලටත් මේකම copy කරලා browser එක විතරක් කලින් කිව්වා විදිහට වෙනස් කරනවා
මෙන්න මෙහම



මන් රතුපාටින් කොටු කරලා තියෙන දේ හැමෝටම තේරෙනව වති
අපි උඩින් browser  එක මාරු කරා නම් යට driver = new කියලා දෙන browser එකත්
අනිවාර්යෙන්ම ඒ මාරු කරපු browser එකම වෙන්න ඕන

දැන් ඔක්කොම test තියෙනවා 4ක් මේ 4ම run කරන්න පුළුවන්
public class LoginTest කියන class name එකට වම පැත්තෙන් තියෙන කොලපාට රවුමයි ඉතලයයි click කරලා ,
එකක් ඉවර වෙලා අනිත් එක ලස්සනට රන් වෙයි

(මතක තියාගන්න ඔක්කොම browsers machine තමන්ගේ කොම්පුටරේ install වෙලා තියෙන්න ඕන )


අසා  සිටිය ඔබ සැමට ස්තුති 
==============================================

මන් කලින් ලිව්වා පොස්ට් වල තියෙන ගොඩක්ම ඒවා අයිත් පාරක් පැහැදිලි කරන එක තමයි මේ කරේ ,
හැබැයි අර අන්තිමට supermarket එකෙන් ගත්ත දේ ගැන නම් මම මිට කලින් කියලා නෑ

Try එකක් දීලා බලපව් මැරෙන්නේ නෑ නේ

ඊළගට මන් කරන්න ඉන්නේ code එක ලස්සනට manage කරන විදිහයි
Test script එකක් උනාම pass ද fail ද කියලා result එකක තියෙන්න එපයි අන්න ඒක ගන්න විදිහයි
(කවද වෙයිද දන්නේ නෑ ඉතින් ඔව්වා  )

එහෙනම් ජය ...