From 7bc17fd4655bfe31537608ee9da1ad297a49af50 Mon Sep 17 00:00:00 2001 From: sumanthvarma19 <56889707+sumanthvarma19@users.noreply.github.com> Date: Tue, 5 Nov 2019 17:30:03 -0600 Subject: [PATCH 1/5] Update Home.page.js --- Wd_IO/page/Home.page.js | 351 ++++++++++++++++++++++++++-------------- 1 file changed, 230 insertions(+), 121 deletions(-) diff --git a/Wd_IO/page/Home.page.js b/Wd_IO/page/Home.page.js index 8aeda747..6e4a313a 100644 --- a/Wd_IO/page/Home.page.js +++ b/Wd_IO/page/Home.page.js @@ -1,121 +1,230 @@ -class Home { - - - get navigationHeader() { - return $(".nav-header button"); - } - - get dashboardLink() { - return $("//a[text()='Dashboard']"); - } - - get usersLink() { - return $("//a[text()='Users']"); - } - - - get reservationsLink() { - return $("//a[text()='Reservations']"); - } - - get carsLink() { - return $("//a[text()='Cars']"); - } - - get locationDetailsLink() { - return $("//a[text()='Location Details']"); - } - - get reportsLink() { - return $("//a[text()='Reports']"); - } - - get promotionsLink() { - return $("//a[text()='Promotions']"); - } - - get logOutLink() { - return $("//a[text()='Log Out']"); - } - - - - - clickNavHeader() { - this.navigationHeader.isDisplayed(); - this.navigationHeader.click(); - } - - - waitForPageTOLoad() { - for (let i = 0; i < 5; i++) { - var oldSource = browser.getPageSource(); - browser.pause(2000); - if (oldSource === browser.getPageSource()) { - break; - } - } - } - -/* - method Name : navigateToSideLinks - return type : void - Parameters : method will accept one parameter i.e linkname like "dashboard","cars"...etc - Purpose : purpose of this method is used to naviage left side navigation links in application . -*/ - - navigateToSideLinks(linkName) { - this.navigationHeader.isDisplayed(); - this.navigationHeader.click(); - this.waitForPageTOLoad(); - switch (linkName) { - case "dashboard": - browser.waitUntil(() => this.dashboardLink.isDisplayed()); - this.dashboardLink.click(); - this.waitForPageTOLoad(); - break; - case "users": - browser.waitUntil(() => this.usersLink.isDisplayed()); - this.usersLink.click(); - this.waitForPageTOLoad(); - break; - case "reservations": - browser.waitUntil(() => this.reservationsLink.isDisplayed()); - this.reservationsLink.click(); - this.waitForPageTOLoad(); - break; - case "cars": - browser.waitUntil(() => this.carsLink.isDisplayed()); - this.carsLink.click(); - this.waitForPageTOLoad(); - break; - - case "locationDetails": - browser.waitUntil(() => this.locationDetailsLink.isDisplayed()); - this.locationDetailsLink.click(); - this.waitForPageTOLoad(); - break; - - case "reports": - browser.waitUntil(() => this.reportsLink.isDisplayed()); - this.reportsLink.click(); - this.waitForPageTOLoad(); - break; - - case "promotions": - browser.waitUntil(() => this.promotionsLink.isDisplayed()); - this.promotionsLink.click(); - this.waitForPageTOLoad(); - break; - - case "logout": - browser.waitUntil(() => this.logOutLink.isDisplayed()); - this.logOutLink.click(); - this.waitForPageTOLoad(); - break; - - } - - } - -} module.exports = Home; \ No newline at end of file + + +class SignUp{ + + + get SignInbutton() + { + return $("//a[text()='Login']"); + } + get SIgnupbutton(){ + return $("//a[text()='Sign up']"); + } + + get donateHeaderButton(){ + + return $("(//a[text()='Donate'])[last()-1]"); + } + + get lastDonateButton(){ + + return $("(//a[text()='Donate'])[last()]"); + } + + get learnerButton(){ + + return $("//button[text()='Learner']"); + } + get teacherButton(){ + + return $("//button[text()='Teacher']"); + } + get parentButton(){ + + return $("//button[text()='Parent']"); + } + + get monthPicker(){ + + return $("//select[@name='birth[month]']"); + } + get dayPicker(){ + + return $("//select[@name='birth[day]']"); + } + +get yearPicker(){ + + return $("//select[@name='birth[year]']"); + } + get signUpbyusername(){ + + return $("//div[text()='Sign up by choosing a username']"); + } + get signupEmail(){ + + return $("//input[@type='email']"); + } + + get signupuserName(){ + + return $("//input[@type='text']"); + } + + get createPassword(){ + return $("//input[@type='password']"); + } + get postsignup(){ + + return $("//div[text()='Sign up']"); + } + +get UserName(){ + + return $("//span[@data-test-id='header-profile-button']/span"); +} + +get logoutButton(){ + + return $("//a[text()='Log out']"); +} + +get classname(){ + + return $("label[data-test-id='grade-picker-item-0-11']>div"); +} + +get continuebutton(){ + + return $("(//button//div[text()='Continue'])[1]"); +} +get coursename(){ + return $("//label[contains(.,'Grammar')]//input"); +} + +get clickContinuecoursebutton(){ + + return $("//button[contains(.,'Continue with')]//div"); +} +//////////////////////////////////////////// + + clickSignupButton () + { + browser.waitUntil(() => this.SIgnupbutton.isDisplayed()); + this.SIgnupbutton.click(); + } + + clickparentButton(){ + browser.waitUntil(() => this.parentButton.isDisplayed()); + this.parentButton.click(); +} +clickTeacherButton(){ + browser.waitUntil(() => this.teacherButton.isDisplayed()); + this.teacherButton.click(); + +} +clickLearnerButton(){ + browser.waitUntil(() => this.learnerButton.isDisplayed()); + this.learnerButton.click(); +} +clickMonthpicker(){ + browser.waitUntil(() => this.monthPicker.isDisplayed()); + this.monthPicker.click(); + this.monthPicker.selectByIndex(8); +} +clickdaypicker(){ + browser.waitUntil(() => this.dayPicker.isDisplayed()); + this.dayPicker.click(); + this.dayPicker.selectByIndex(8); +} + +clickyearpicker(){ + browser.waitUntil(() => this.yearPicker.isDisplayed()); + this.yearPicker.click(); + this.yearPicker.selectByIndex(8); +} + +clicksignupbyuserName(){ + browser.waitUntil(() => this.signUpbyusername.isDisplayed()); + this.signUpbyusername.click(); +} +entersignupEmail(email){ + browser.waitUntil(() => this.signupEmail.isDisplayed()); + this.signupEmail.click(); + this.signupEmail.clearValue(); + this.signupEmail.setValue(email); + +} +enterSignupUserName(name){ + browser.waitUntil(() => this.signupuserName.isDisplayed()); + this.signupuserName.click(); + this.signupuserName.clearValue(); + this.signupuserName.setValue(name); + +} +enterSignPassword(password){ + browser.waitUntil(() => this.createPassword.isDisplayed()); + this.createPassword.click(); + this.createPassword.clearValue(); + this.createPassword.setValue(password); + +} +clickPostSignUp(){ + this.postsignup.click(); +} + + + +clickClassName(){ + browser.execute(function () { + document.querySelector('label[data-test-id="grade-picker-item-0-11"]').scrollIntoView(); + }); + this.classname.click(); +} + +clickContinueButton(){ + browser.waitUntil(() => this.continuebutton.isDisplayed()); + this.continuebutton.click(); +} +clickCourseName(){ + browser.execute(function () { + document.querySelector('div[class="_wgmchy"]:nth-child(4)').scrollIntoView(); + }); + browser.pause(2000); + this.coursename.click(); +} + +clickCourseContinueButton(){ + browser.waitUntil(() => this.clickContinuecoursebutton.isDisplayed()); + this.clickContinuecoursebutton.click(); +} + +clickUserNameText(username){ + browser.waitUntil(() => this.UserName.isDisplayed()); + expect(this.UserName.getText()).toBe(username, "user name is not getting displayed"); + this.UserName.click(); +} +clickLogoutButton(){ + browser.waitUntil(() => this.logoutButton.isDisplayed()); + this.logoutButton.click(); +} +///////////////////////////////////// + validateSignup(email, name, password, username){ + + this.clickSignupButton(); + this.clickparentButton(); + this.clickTeacherButton(); + this.clickLearnerButton(); + this.clickMonthpicker(); + this.clickdaypicker(); + this.clickyearpicker(); + this.clicksignupbyuserName(); + this.entersignupEmail(email); + this.enterSignupUserName(name); + this.enterSignPassword(password); +this.clickPostSignUp(); +browser.pause(10000); + +this.clickClassName(); +this.clickContinueButton(); +this.clickCourseName(); +this.clickCourseContinueButton(); +browser.pause(3000); +this.clickUserNameText(username); +this.clickLogoutButton(); + } + + + +}module.exports = SignUp; + From 6daace6c60b608560a8d1aa95de89d98c521e2a7 Mon Sep 17 00:00:00 2001 From: sumanthvarma19 <56889707+sumanthvarma19@users.noreply.github.com> Date: Tue, 5 Nov 2019 17:30:24 -0600 Subject: [PATCH 2/5] Delete login.page.js --- Wd_IO/page/login.page.js | 59 ---------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 Wd_IO/page/login.page.js diff --git a/Wd_IO/page/login.page.js b/Wd_IO/page/login.page.js deleted file mode 100644 index 4a17f5e6..00000000 --- a/Wd_IO/page/login.page.js +++ /dev/null @@ -1,59 +0,0 @@ -class Login{ - - get inputUserEmail(){ - return $("[name='email']"); - } - - get inputPassword(){ - return $("[name='password']"); - } - - get linkForgotPwd(){ - return $('//a[text()="Forgot Password"]'); - } - - get buttonLogin(){ - return $("//span[text()='Log In']/ancestor::button"); - } - get pageHeader() { - return $("//span[contains(@class,'title-text')]"); - } - - get pageTitle(){ - return $("//main[@class='dashboard-container']"); - } - - get input(){ - return $("//label[text()='First Rentable Date']/parent::div//input"); - } - - login(userName,password,flag){ - - browser.waitUntil(() => this.inputUserEmail.isDisplayed()); - this.inputUserEmail.setValue(userName); - this.inputPassword.setValue(password) - this.buttonLogin.click(); - waitForPageTOLoad(); - if(flag == true){ - browser.waitUntil(() => { - return this.pageTitle.getText().length > 0 - }, 20000, 'user not logged in to application ') - } - - } - - - - - -}module.exports = Login; - -function waitForPageTOLoad(){ - for (let i=0;i<5;i++){ - var oldSource=browser.getPageSource(); - browser.pause(2000); - if(oldSource === browser.getPageSource()){ - break; - } - } - } \ No newline at end of file From 8be68534e05065eabd80caff9ab66f6577d34478 Mon Sep 17 00:00:00 2001 From: sumanthvarma19 <56889707+sumanthvarma19@users.noreply.github.com> Date: Tue, 5 Nov 2019 17:30:55 -0600 Subject: [PATCH 3/5] Update login.spec.js --- Wd_IO/spec/login.spec.js | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/Wd_IO/spec/login.spec.js b/Wd_IO/spec/login.spec.js index df60c06a..ab456776 100755 --- a/Wd_IO/spec/login.spec.js +++ b/Wd_IO/spec/login.spec.js @@ -1,34 +1,23 @@ require("dotenv").config(); -const Login = require("../page/login.page.js"); -const Home= require("../page/Home.page.js"); -const LocationDetails= require("../page/locationDetails.page.js"); -const login = new Login(); -const home= new Home(); -const locDeatils= new LocationDetails(); -let envUrl; -if(process.env.ENVIROMENT == "QA"){ - envUrl=process.env.QA_URL; -}else{ - envUrl=process.env.STG_URL; -} +const SignUp = require("../page/Home.Page.js"); +const signup = new SignUp(); -describe("Validating login functionality ", () => { +const envUrl = process.env.WebUrl; +const email = "sumanthvarma"+ Math.floor(Math.random() * 999999)+"@gmail.com"; +const password = process.env.PassWord; +const name = "sumanth"+ Math.floor(Math.random() * 999999) - it("test_login With valid details", () => { - browser.url(envUrl); - login.login(process.env.adminUser,process.env.adminPassword,true); - expect(true).toBe(login.pageTitle.getText().includes('Hello,'), "user not logged in to application"); - home.navigateToSideLinks("locationDetails"); - locDeatils.selectLocation("Austin"); - locDeatils.clickFleetMgmtTab(); - }); +describe("Validating Signup functionality", () => { + it("validating getstarted click", () => { + browser.url(envUrl); + signup.validateSignup(email, name, password, name); +     }); -}) - + }) From 99d01c89b90884d99cce92aa5110e960c358325e Mon Sep 17 00:00:00 2001 From: sumanthvarma19 <56889707+sumanthvarma19@users.noreply.github.com> Date: Tue, 5 Nov 2019 17:36:55 -0600 Subject: [PATCH 4/5] Update wdio.conf.js --- Wd_IO/wdio.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Wd_IO/wdio.conf.js b/Wd_IO/wdio.conf.js index 03fb6399..60cc3ef1 100644 --- a/Wd_IO/wdio.conf.js +++ b/Wd_IO/wdio.conf.js @@ -95,7 +95,7 @@ exports.config = { // with `/`, the base url gets prepended, not including the path portion of your baseUrl. // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url // gets prepended directly. - baseUrl: 'https://dlr-web-qa.dealerware.com/#/login', + baseUrl:'https://www.khanacademy.org/', // // Default timeout for all waitFor* commands. waitforTimeout: 50000, From 0dead4c7139f42129bfb637c239a0ff2196c5717 Mon Sep 17 00:00:00 2001 From: sumanthvarma19 <56889707+sumanthvarma19@users.noreply.github.com> Date: Tue, 5 Nov 2019 17:37:41 -0600 Subject: [PATCH 5/5] Update .env --- Wd_IO/.env | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/Wd_IO/.env b/Wd_IO/.env index 05442ccd..d23df5fd 100644 --- a/Wd_IO/.env +++ b/Wd_IO/.env @@ -1,22 +1,2 @@ - - QA_URL = https://silverware3.rac-tst.com/login - STG_URL = https://silverware3.rac-stg.com/login - ENVIROMENT = QA - - **** admin Details **** - adminUser=rajeev.junutula@silvercar.com - adminPassword= hom3Dep0t - - - - - *********DataBase Details ************ - Host = rac-tst-rdb.cjwzn0cs2qup.us-east-1.rds.amazonaws.com - UserName= mysqlroot - Password = FWd6gT9iuxcRHquYsJ9m - DataBase = rac_tst - Port = 3306 - - - - +WebUrl= https://www.khanacademy.org/ +PassWord= @Lt12345