Project move to git repository

This commit is contained in:
Sadashiva 2021-07-09 16:59:51 +05:30
parent faae66c69a
commit 3c5740db7b
74 changed files with 6787 additions and 0 deletions

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Hills_With_Cucumber</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,5 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.5

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -0,0 +1,2 @@
browser.baseURL=https://testcolpal.aisselkolm.com/hills_staging/login
browser.name=chrome

170
Hills_With_Cucumber/pom.xml Normal file
View File

@ -0,0 +1,170 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Hills_With_Cucumber</groupId>
<artifactId>Hills_With_Cucumber</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Maven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.ralfstuckert.pdfbox-layout/pdfbox2-layout -->
<dependency>
<groupId>com.github.ralfstuckert.pdfbox-layout</groupId>
<artifactId>pdfbox2-layout</artifactId>
<version>0.8.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.apple</groupId>
<artifactId>AppleJavaExtensions</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java8 -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java8</artifactId>
<version>4.8.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-adapter -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports-cucumber4-adapter</artifactId>
<version>1.0.12</version>
<exclusions>
<exclusion>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
</exclusion>
<exclusion>
<groupId>o.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>5.0.0</version>
<executions>
<execution>
<id>execution</id>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>maven</projectName>
<!-- optional, per documentation set this to "true" to bypass generation
of Cucumber Reports entirely, defaults to false if not specified -->
<skip>false</skip>
<!-- output directory for the generated report -->
<outputDirectory>target/cucumber-reports/advanced-reports</outputDirectory>
<!-- optional, defaults to outputDirectory if not specified -->
<cucumberOutput>target/cucmber-reports/cucumber.json</cucumberOutput>
<inputDirectory>${project.build.directory}/jsonReports</inputDirectory>
<jsonFiles>
<!-- supports wildcard or name pattern -->
<param>**/*.json</param>
</jsonFiles>
<!-- optional, defaults to outputDirectory if not specified -->
<classificationDirectory>${project.build.directory}/classifications</classificationDirectory>
<classificationFiles>
<!-- supports wildcard or name pattern -->
<param>sample.properties</param>
<param>other.properties</param>
</classificationFiles>
<parallelTesting>false</parallelTesting>
<!-- optional, set true to group features by its Ids -->
<mergeFeaturesById>false</mergeFeaturesById>
<!-- optional, set true to get a final report with latest results
of the same test from different test runs -->
<mergeFeaturesWithRetest>false</mergeFeaturesWithRetest>
<!-- optional, set true to fail build on test failures -->
<checkBuildResult>false</checkBuildResult>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,400 @@
package PageObjects;
import java.io.File;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import Utilities.BrowserUtility;
public class ContactsPage extends BrowserUtility{
@FindBy(how=How.XPATH, using="//div[@class='navLinkMyKolsIn sprite_iconSet']")
WebElement tabContacts;
@FindBy(how=How.XPATH, using="((//*[contains(@id,'categoryCountry')])//tbody/tr[4]/td[1])")
WebElement filterCountry;
@FindBy(how=How.XPATH, using="(//span[@class='record_name'])[1]")
WebElement HCPProfile;
@FindBy(how=How.XPATH, using="//a[@target='_new']")
WebElement lnkViewProfile;
@FindBy(how=How.XPATH, using="//p[contains(text(),'Australia') or contains(text(),'India')]")
WebElement txtHcpCountry;
@FindBy(how=How.XPATH, using="//a[@class='addHcpIcon']")
WebElement addHcp;
@FindBy(how=How.XPATH, using="//select[@name='salutation']")
WebElement drpSalutation;
@FindBy(how=How.XPATH, using="//select[@name='country_id']")
WebElement drpCountry;
@FindBy(how=How.XPATH, using="//select[@name='lang_id']")
WebElement drpLanguage;
@FindBy(how=How.XPATH, using="//input[@name='first_name']")
WebElement txtFirstName;
@FindBy(how=How.XPATH, using="//input[@name='last_name']")
WebElement txtLastName;
@FindBy(how=How.XPATH, using="//input[@name='email']")
WebElement txtEmail;
@FindBy(how=How.ID, using="save_data")
WebElement btnSave;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[2]/label[1]")
WebElement msgSalutationMandatory;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[4]/label[1]")
WebElement msgFirstNameMandatory;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[6]/label[1]")
WebElement msgLastNameMandatory;
@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[2]/label[1]")
WebElement msgEmailMandatory;
@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[4]/label[1]")
WebElement msgCountryMandatory;
@FindBy(how=How.XPATH, using="//tbody/tr[3]/td[1]/a[3]")
WebElement btnCancel;
@FindBy(how=How.XPATH, using="//tbody/tr[@id='kol3609']/td[1]/input[2]")
WebElement cbxKOL;
@FindBy(how=How.XPATH, using="//div[@class='pdfExportIcon sprite_iconSet']")
WebElement lnkPDFExport;
@FindBy(how=How.XPATH, using="//input[@name='full_profile']")
WebElement cbxFullProfile;
@FindBy(how=How.XPATH, using="//input[@id='next']")
WebElement btnExport;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']")
WebElement lnkExcelExport;
@FindBy(how=How.XPATH, using="//span[contains(text(),'My Contacts')]")
WebElement drpAssigned;
@FindBy(how=How.XPATH, using="//div[@class='assignProfileIcon sprite_iconSet']")
WebElement lnkAssign;
@FindBy(how=How.XPATH, using="//input[@value='Select Users']")
WebElement drpUser;
@FindBy(how=How.XPATH, using="//input[@value='Assign']")
WebElement btnAssign;
@FindBy(how=How.XPATH, using="//li[@id='viewType_chzn_o_1']")
WebElement selectAllContacts;
@FindBy(how=How.XPATH, using="//div[@id='emailIcon']")
WebElement lnkEmail;
@FindBy(how=How.XPATH, using="//textarea[@id='to']")
WebElement txtAreaTo;
@FindBy(how=How.XPATH, using="//input[@id='sendEmail']")
WebElement btnSend;
@FindBy(how=How.XPATH, using="//div[@class='createListIcon sprite_iconSet']")
WebElement lnkList;
@FindBy(how=How.XPATH, using="//select[@name='category_id']")
WebElement drpCategory;
//option[@id='catCss']
@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[1]/p[1]/input[1]")
WebElement txtAreaAddNewCategory;
@FindBy(how=How.XPATH, using="//select[@id='list_id']")
WebElement drpList;
//option[@id='css1']
@FindBy(how=How.XPATH, using="//tbody/tr[4]/td[1]/p[1]/input[1]")
WebElement txtAreaListName;
@FindBy(how=How.XPATH, using="//input[@id='saveKolList']")
WebElement btnSaveKOLList;
@FindBy(how=How.XPATH, using="//input[@id='searchKeyword']")
WebElement txtAreaSearchKOL;
@FindBy(how=How.XPATH, using="//label[@class='kolName']")
WebElement lnkKOLName;
@FindBy(how=How.XPATH, using="//input[@id='unassignMeButton']")
WebElement btnUnAssign;
@FindBy(how=How.XPATH, using="//body/div[35]/div[1]/a[1]/span[1]")
WebElement iconCancel;
WebDriver driver;
String text;
public ContactsPage(WebDriver driver) {
this.driver=driver;
PageFactory.initElements(driver, this);
}
public void clickContactTab() {
//Thread.sleep(3000);
tabContacts.click();
}
public void filterCountryName() throws InterruptedException {
Thread.sleep(3000);
filterCountry.click();
text=filterCountry.getText();
System.out.println("Country Name"+" "+text+" "+"filtering in Refine By section");
}
public void clickOnHCPProfile() {
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
//HCPProfile.click();
try{
HCPProfile.click();
}
catch(StaleElementReferenceException e)
{
HCPProfile.click();
}
}
public void clickViewProfile() throws InterruptedException {
Thread.sleep(2000);
lnkViewProfile.click();
}
public void verifyCountryName() {
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
String string = txtHcpCountry.getText();
String[] parts = string.split(",");
String part = parts[1];
String countryName=part.trim();
System.out.println("Country Name displayed in bussiness card is"+" " +countryName);
if(countryName.equalsIgnoreCase(text)) {
System.out.println("HCP filter is successful");
}else {
System.out.println("HCP filter is not successful");
}
/*String parent=driver.getWindowHandle();
Set<String> s= driver.getWindowHandles();
Iterator<String>I1=s.iterator();
while(I1.hasNext()) {
String child=I1.next();
if(!parent.equals(child)) {
driver.switchTo().window(child);
String string = txtHcpCountry.getText();
String[] parts = string.split(",");
String part = parts[1];
String countryName=part.trim();
System.out.println("Country Name displayed in bussiness card is"+" " +countryName);
if(countryName.equalsIgnoreCase(text)) {
System.out.println("HCP filter is successful");
}else {
System.out.println("HCP filter is not successful");
}
driver.close();
}
}
driver.switchTo().window(parent);*/
}
public void clickAddHcp() {
addHcp.click();
}
public void clickSaveButton() throws InterruptedException {
btnSave.click();
Thread.sleep(3000);
}
public void verifyErrorMessageShownForMandatoryFields() {
String msgSalutation=msgSalutationMandatory.getText();
String msgFirstName=msgFirstNameMandatory.getText();
String msgLastName=msgLastNameMandatory.getText();
String msgEmail=msgEmailMandatory.getText();
String msgCountry=msgCountryMandatory.getText();
if(msgSalutation.equalsIgnoreCase("Required")&&msgFirstName.equalsIgnoreCase("Required")&&msgLastName.equalsIgnoreCase("Required")&&msgEmail.equalsIgnoreCase("Required")&&msgCountry.equalsIgnoreCase("Required"))
{
System.out.println("Passed: Mandatory fields are shown as Required");
}else {
System.out.println("Failed: Mandatory fields are not shown as Required");
}
}
public void clickCancelButton() {
btnCancel.click();
}
public void verifyUserNavigationToContacts() {
String ContactsPageTitle=driver.getCurrentUrl();
if(ContactsPageTitle.equalsIgnoreCase("https://testcolpal.aisselkolm.com/hills_staging/kols/list_kols_client_view"))
{
System.out.println("Passed: User is successfully navigated to contacts page on click of cancel button in add KOL page");
}else {
System.out.println("Passed: User is not successfully navigated to contacts page on click of cancel button in add KOL page");
}
}
public void selectAKOL() {
try{
cbxKOL.click();
}
catch(StaleElementReferenceException e)
{
cbxKOL.click();
}
}
public void clickOnPDFLink() {
lnkPDFExport.click();
}
public void verifyPDFFileDownload() throws InterruptedException {
Thread.sleep(3000);
File f1=new File("C:\\Users\\hp\\Downloads\\Adam Critsin.pdf");
if(f1.exists()) {
System.out.println("KOL details downloaded as PDF file");
f1.delete();
}
}
public void clickOnExcelLink() {
lnkExcelExport.click();
}
public void selectFullProfile() throws InterruptedException {
Thread.sleep(2000);
cbxFullProfile.click();
}
public void clickExportButton() {
btnExport.click();
}
public void verifyExcelFileDownload() throws InterruptedException {
Thread.sleep(3000);
iconCancel.click();
File f1=new File("C:\\Users\\hp\\Downloads\\KTL_profiles.xlsx");
if(f1.exists()) {
System.out.println("KOL Full profile exported as Excel file");
f1.delete();
}
}
public void selectAllContacts() throws InterruptedException {
drpAssigned.click();
Thread.sleep(2000);
Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_1']"))).click().build().perform();
Thread.sleep(2000);
//drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click();
/*try{
drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click();
System.out.println("Clicked on All contacts");
}
catch(StaleElementReferenceException e)
{
drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click();
System.out.println("Clicked on All contantcs failed");
}*/
}
public void clickAssignLink() {
lnkAssign.click();
}
public void selectUser() throws InterruptedException {
//Thread.sleep(2000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Select Users']"))).click();
drpUser.findElement(By.xpath("//li[@id='users_chzn_o_1']")).click();
}
public void clickAssignButton() throws InterruptedException {
btnAssign.click();
Thread.sleep(2000);
}
public void clickEmailLink() throws InterruptedException {
lnkEmail.click();
Thread.sleep(1000);
}
public void enterToEmail(String email) throws InterruptedException {
Thread.sleep(1000);
txtAreaTo.sendKeys(email);
Thread.sleep(1000);
}
public void clickSendButton() throws InterruptedException {
btnSend.click();
Thread.sleep(6000);
}
public void clickListLink() {
lnkList.click();
}
public void selectAddNewCategory() throws InterruptedException {
Thread.sleep(2000);
Select category=new Select(drpCategory);
category.selectByVisibleText("Add New Category");
txtAreaAddNewCategory.sendKeys("Rocky");
}
public void selectAddNewList() {
Select listName=new Select(drpList);
listName.selectByVisibleText("Add New List Name");
txtAreaListName.sendKeys("Sam");
}
public void clickListSaveButton() throws InterruptedException {
btnSaveKOLList.click();
Thread.sleep(2000);
}
public void clickOnKOLName(String KOLName) throws InterruptedException {
txtAreaSearchKOL.sendKeys(KOLName);
Thread.sleep(2000);
lnkKOLName.click();
}
public void clickUnAssignButton() throws InterruptedException {
Thread.sleep(2000);
btnUnAssign.click();
}
}

View File

@ -0,0 +1,42 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import Utilities.BrowserUtility;
public class HomePage extends BrowserUtility
{
@FindBy(how=How.XPATH, using="(//a[@class='show-all-link'])[1]")
WebElement LinkShowMore;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[2]/div[2]/div[2]/div[2]/a[1]/span[1]")
WebElement RaShowMore;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/input[1]")
WebElement ViewAllNews;
WebDriver driver;
public HomePage(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void clickshowmorelink() throws InterruptedException
{
Thread.sleep(7000);
LinkShowMore.click();
}
public void clickrashowmorelink()
{
RaShowMore.click();
}
public void clickallnewslink()
{
ViewAllNews.click();
}
}

View File

@ -0,0 +1,407 @@
package PageObjects;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class KOLProfilePage {
@FindBy(how=How.XPATH, using="//textarea[@id='user-note']")
WebElement txtAreaUserNote;
@FindBy(how=How.XPATH, using="//button[@id='saveBtn']")
WebElement btnSave;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Training')]")
WebElement lnkAddTraining;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Honors and Awards')]")
WebElement lnkAddHonorsAndAwards;
@FindBy(how=How.XPATH, using="//body/div[35]/div[1]/a[1]/span[1]")
WebElement iconCancel;
@FindBy(how=How.XPATH, using="//a[@id='detailsForHint']")
WebElement tabDetails;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Location')]")
WebElement lnkAddLocation;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Phone')]")
WebElement lnkAddPhone;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Staff')]")
WebElement lnkAddStaff;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Email')]")
WebElement lnkAddEmail;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Assign')]")
WebElement lnkAddAssign;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[19]")
WebElement iconCancelLocation;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[20]")
WebElement iconCancelPhoneNumber;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[21]")
WebElement iconCancelStaff;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[22]")
WebElement iconCancelEmail;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[24]")
WebElement iconCancelAssign;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Track')]")
WebElement tabTrack;
@FindBy(how=How.XPATH, using="//a[@data-original-title='Export Interaction Detail into Excel format']")
WebElement exportIntractions;
@FindBy(how=How.XPATH, using="//a[@id='report']")
WebElement tabReport;
@FindBy(how=How.XPATH, using="//a[@id='chart']")
WebElement tabChart;
@FindBy(how=How.XPATH, using="//a[@id='calender']")
WebElement tabCalendar;
@FindBy(how=How.XPATH, using="//a[@id='payementType']")
WebElement tabPaymentType;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Payment')]")
WebElement lnkAddPayment;
@FindBy(how=How.XPATH, using="//input[@value='Cancel']")
WebElement btnCancel;
@FindBy(how=How.XPATH, using="//a[@id='conratctType']")
WebElement tabContract;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Contract')]")
WebElement lnkAddContract;
@FindBy(how=How.XPATH, using="//body/div[23]/div[1]/a[1]/span[1]")
WebElement iconCancelContract;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Affiliations')]")
WebElement tabAffiliation;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Affiliation')]")
WebElement lnkAddAffiliation;
@FindBy(how=How.XPATH, using="//body/div[20]/div[1]/a[1]/span[1]")
WebElement iconCancelAffiliation;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Reports Org')]")
WebElement tabReportOrg;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Reports Eng')]")
WebElement tabReportEng;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[4]/a[1]")
WebElement tabEvents;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add New Event')]")
WebElement lnkAddNewEvent;
@FindBy(how=How.XPATH, using="//body/div[25]/div[1]/a[1]/span[1]")
WebElement iconCancelEvent;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Events Charts')]")
WebElement tabEventsCharts;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Publications')]")
WebElement tabPublications;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add New Publication')]")
WebElement lnkAddNewPublication;
@FindBy(how=How.XPATH, using="//body/div[25]/div[1]/a[1]/span[1]")
WebElement iconCancelPublication;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Pubs Charts')]")
WebElement tabPubsCharts;
@FindBy(how=How.XPATH, using="//a[@data-original-title='Export All Affilations Details into Excel format']")
WebElement exportAffiliation;
@FindBy(how=How.XPATH, using="//a[@data-original-title='Export Events Details into Excel format']")
WebElement exportEvents;
@FindBy(how=How.XPATH, using="//a[@data-original-title='Export Publications Details into Excel format']")
WebElement exportPublications;
WebDriver driver;
public KOLProfilePage(WebDriver driver) {
this.driver=driver;
PageFactory.initElements(driver, this);
}
public void addUserNotes(String usernote) {
txtAreaUserNote.sendKeys(usernote);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@id='saveBtn']"))).click();
}
public void openAndCloseAddTraining() throws InterruptedException {
lnkAddTraining.click();
//Thread.sleep(4000);
WebDriverWait wait=new WebDriverWait(driver, 20);
Thread.sleep(1000);
wait.until(ExpectedConditions.visibilityOf(iconCancel)).click();
//iconCancel.click();
}
public void openAndCloseAddHonorsAndAwards() throws InterruptedException{
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,500)");
Thread.sleep(1500);
lnkAddHonorsAndAwards.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancel)).click();
//Thread.sleep(1000);
//iconCancel.click();
/*WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//body/div[34]/div[1]/a[1]/span[1]"))).click();
Actions act = new Actions(driver);
act.moveToElement(iconCancel).click().build().perform();*/
//WebElement elementToClick = driver.findElement(By.xpath("//body/div[34]/div[1]/a[1]/span[1]"));
//((JavascriptExecutor)driver).executeScript("window.scrollTo(0,"+elementToClick.getLocation().y+")");
//elementToClick.click();
//driver.navigate().refresh();
//Thread.sleep(2000);
//driver.switchTo().alert().dismiss();
}
public void clickDetailsTab() {
tabDetails.click();
}
public void openAndCloseAddLocation() throws InterruptedException {
Thread.sleep(2000);
lnkAddLocation.click();
Thread.sleep(4000);
//WebDriverWait wait=new WebDriverWait(driver, 20);
//wait.until(ExpectedConditions.visibilityOf(iconCancelLocation)).click();
iconCancelLocation.click();
}
public void openAndCloseAddPhone() throws InterruptedException {
lnkAddPhone.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelPhoneNumber)).click();
//iconCancelPhoneNumber.click();
}
public void openAndCloseAddStaff() throws InterruptedException {
lnkAddStaff.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelStaff)).click();
//iconCancelStaff.click();
}
public void openAndCloseAddEmail() throws InterruptedException {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
Thread.sleep(1000);
lnkAddEmail.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelEmail)).click();
//Thread.sleep(2000);
//iconCancelEmail.click();
}
public void openAndCloseAddAssign() throws InterruptedException {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
lnkAddAssign.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelAssign)).click();
//Thread.sleep(2000);
//iconCancelAssign.click();
}
public void clickTrackTab() {
tabTrack.click();
}
public void exportInteractions() throws InterruptedException {
exportIntractions.click();
Thread.sleep(1000);
File f1=new File("C:\\Users\\hp\\Downloads\\");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("Interactions_")) {
f.delete();
System.out.println("Interaction details are exported successfully");
}
}
}
public void clickReportTab() throws InterruptedException {
Thread.sleep(2000);
tabReport.click();
}
public void clickChartTab() throws InterruptedException {
Thread.sleep(2000);
tabChart.click();
}
public void clickCalendarTab() throws InterruptedException {
Thread.sleep(2000);
tabCalendar.click();
}
public void clickPaymentTab() throws InterruptedException {
tabPaymentType.click();
Thread.sleep(2000);
}
public void addAndCloseAddPayment() throws InterruptedException {
lnkAddPayment.click();
Thread.sleep(2000);
btnCancel.click();
}
public void clickContractTab() throws InterruptedException {
tabContract.click();
Thread.sleep(2000);
}
public void addAndCloseAddContract() throws InterruptedException {
lnkAddContract.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelContract)).click();
//iconCancelContract.click();
}
public void clickAffiliationTab() {
tabAffiliation.click();
}
public void openAndCloseAddAffiliation() throws InterruptedException {
Thread.sleep(2000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(text(),'Add Affiliation')]"))).click();
//lnkAddAffiliation.click();
Thread.sleep(2000);
iconCancelAffiliation.click();
}
public void clickReportsOrgTab() throws InterruptedException {
tabReportOrg.click();
Thread.sleep(1000);
}
public void clickReportEngTab() throws InterruptedException {
tabReportEng.click();
Thread.sleep(1000);
}
public void clickEventTab() {
tabEvents.click();
}
public void openAndCloseAddNewEvent() throws InterruptedException {
Thread.sleep(1000);
lnkAddNewEvent.click();
//WebDriverWait wait=new WebDriverWait(driver, 20);
//wait.until(ExpectedConditions.visibilityOf(iconCancelEvent)).click();
Thread.sleep(7000);
iconCancelEvent.click();
}
public void clickTabEventsCharts() throws InterruptedException {
tabEventsCharts.click();
Thread.sleep(1500);
}
public void clickPublicationsTab() {
tabPublications.click();
}
public void openAndCloseAddNewPublication() throws InterruptedException {
Thread.sleep(1500);
lnkAddNewPublication.click();
Thread.sleep(1000);
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(iconCancelPublication)).click();
//Thread.sleep(2000);
//iconCancelPublication.click();
}
public void clickPubsCharts() throws InterruptedException {
tabPubsCharts.click();
Thread.sleep(1500);
}
public void exportAffiliations() throws InterruptedException {
exportAffiliation.click();
Thread.sleep(1000);
File f1=new File("C:\\Users\\hp\\Downloads\\");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("Ktl_affiliations_")) {
f.delete();
System.out.println("Affiliation details are exported successfully");
}
}
}
public void exportEvents() throws InterruptedException {
Thread.sleep(1000);
exportEvents.click();
Thread.sleep(1000);
File f1=new File("C:\\Users\\hp\\Downloads\\");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("Ktl_events_")) {
f.delete();
System.out.println("Event details are exported successfully");
}
}
}
public void exportPublications() throws InterruptedException {
Thread.sleep(1000);
exportPublications.click();
Thread.sleep(1000);
File f1=new File("C:\\Users\\hp\\Downloads\\");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("Ktl_publications_")) {
f.delete();
System.out.println("Publication details are exported successfully");
}
}
}
}

View File

@ -0,0 +1,76 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import Utilities.BrowserUtility;
public class LoginPage extends BrowserUtility
{
@FindBy(how=How.ID, using="userName")
WebElement txtUsername;
@FindBy(how=How.ID, using="passwordText")
WebElement txtPassword;
@FindBy(how=How.ID, using="loginBtn")
WebElement btnLogin;
@FindBy(how=How.XPATH, using="//div[@class='navLinkHome sprite_iconSet activeIcon']")
WebElement tabHome;
//WebDriver driver;
@FindBy(how=How.XPATH, using="//td[contains(text(),'Invalid username or password')]")
WebElement invalidLogin;
public LoginPage(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void enterUsername(String username)
{
txtUsername.sendKeys(username);
// txtPassword.sendKeys("Ss");
}
public void enterPassword(String password)
{
txtPassword.sendKeys(password);
// txtPassword.sendKeys("Ss");
}
public void clickLoginButton()
{
btnLogin.click();
}
public void verifyHomeTab()
{
if(tabHome.isDisplayed())
{
System.out.println("Hills login is successfully");
}
else
{
System.out.println("Hills login is not successfully");
}
}
public void verifyInvalidLogin()
{
System.out.println("Invalid username or password");
}
}

View File

@ -0,0 +1,320 @@
package PageObjects;
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.Select;
import Utilities.BrowserUtility;
public class MorePage extends BrowserUtility{
@FindBy(how=How.XPATH, using="//div[@class='dropdown sprite_iconSet']")
WebElement tabMore;
@FindBy(how=How.XPATH, using="//div[@class='kolRequestIcon sprite_iconSet']")
WebElement lnkProfileRequest;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo']")
WebElement exportPendingApprovals;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']")
WebElement exportProfileRequests;
@FindBy(how=How.XPATH, using="//div[@class='orgRequestIcon sprite_iconSet']")
WebElement lnkOrgProfileRequest;
@FindBy(how=How.XPATH, using="//span[contains(text(),'Recent Activity')]")
WebElement lnkRecentActivity;
@FindBy(how=How.XPATH, using="//input[@id='influenceKolNameOutside']")
WebElement txtAreaKTLName;
@FindBy(how=How.XPATH, using="//input[@id='submit']")
WebElement btnSubmit;
@FindBy(how=How.XPATH, using="//select[@id='category-list']")
WebElement drpCategoryList;
@FindBy(how=How.XPATH, using="//label[@class='kolName']")
WebElement KolName;
@FindBy(how=How.XPATH, using="//div[@class='notifications sprite_iconSet']")
WebElement lnkNotifications;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add New')]")
WebElement lnkAddNew;
@FindBy(how=How.XPATH, using="//input[@value='Cancel']")
WebElement btnCancel;
@FindBy(how=How.XPATH, using="//div[@class='medIntel sprite_iconSet']")
WebElement lnkMedia;
@FindBy(how=How.XPATH, using="//input[@id='datepicker1']")
WebElement fromDate;
@FindBy(how=How.XPATH, using="//input[@id='submit_date']")
WebElement btnGo;
@FindBy(how=How.XPATH, using="//span[contains(text(),'Social Media')]")
WebElement lnkSocialMedia;
@FindBy(how=How.XPATH, using="//span[contains(text(),'Upcoming Events')]")
WebElement lnkUpcomingEvents;
@FindBy(how=How.XPATH, using="(//a[@class='tooltipLink'])[3]")
WebElement helperEventSnapshot;
@FindBy(how=How.XPATH, using="//button[contains(text(),'Back')]")
WebElement btnBack;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Calendar')]")
WebElement tabCalendar;
@FindBy(how=How.XPATH, using="//button[contains(text(),'Day')]")
WebElement tabDay;
@FindBy(how=How.XPATH, using="(//a[@class='inbox-icon'])[2]")
WebElement lnkInbox;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Accounts')]")
WebElement lnkAccounts;
@FindBy(how=How.XPATH, using=" //a[contains(text(),'Profile')]")
WebElement lnkProfile;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Templates')]")
WebElement lnkTemplates;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Unsubscribed List')]")
WebElement lnkUnsubscribedList;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Bounced List')]")
WebElement lnkBouncedList;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Mail Merge Statistics')]")
WebElement lnkMailMergeStatistics;
@FindBy(how=How.XPATH, using="//span[contains(text(),'Mailbox')]")
WebElement lnkMailBox;
@FindBy(how=How.XPATH, using="//a[@class='draft-icon']")
WebElement lnkDraft;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Map')]")
WebElement tabMap;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Sent')]")
WebElement lnkSent;
@FindBy(how=How.XPATH, using="(//a[@class='inbox-icon'])[3]")
WebElement lnkBounced;
@FindBy(how=How.XPATH, using="(//a[@class='outbox-icon'])[1]")
WebElement lnkOutBox;
@FindBy(how=How.XPATH, using="//input[@id='backToFolders']")
WebElement btnBackToFolder;
@FindBy(how=How.XPATH, using="//a[@id='uploadDocumentGranted']")
WebElement lnkUploadDoc;
@FindBy(how=How.XPATH, using="//span[contains(text(),'Documents')]")
WebElement lnkDocuments;
@FindBy(how=How.XPATH, using="//select[@id='doc_sort_type']")
WebElement drpSortBy;
@FindBy(how=How.XPATH, using="(//label[@class='folderName'])[1]")
WebElement lnkFolder;
@FindBy(how=How.XPATH, using="(//input[@value='Cancel'])[1]")
WebElement lnkCancel;
WebDriver driver;
public MorePage(WebDriver driver) {
this.driver=driver;
PageFactory.initElements(driver, this);
}
public void clickMoreTab() {
tabMore.click();
}
public void clickProfileRequestLink() {
lnkProfileRequest.click();
}
public void exportPendingApprovalsInExcel() throws InterruptedException {
Thread.sleep(2000);
exportPendingApprovals.click();
Thread.sleep(1500);
File f1=new File("C:\\Users\\Sadashiva\\Downloads");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("my_pending_approvals")||f.getName().startsWith("MyPendingApprovals")) {
f.delete();
System.out.println("Pending approvals are exported successfully");
}
}
}
public void exportProfileRequestsInExcel() throws InterruptedException {
Thread.sleep(2000);
exportProfileRequests.click();
Thread.sleep(1500);
File f1=new File("C:\\Users\\Sadashiva\\Downloads");
for(File f:f1.listFiles()) {
if (f.getName().startsWith("AllProfileRequests")) {
f.delete();
System.out.println("All profile requests are exported successfully");
}
}
}
public void clickOrgProfileRequest() {
lnkOrgProfileRequest.click();
}
public void clickRecentActivityLink() {
lnkRecentActivity.click();
}
public void enterKOLName(String KOLName) throws InterruptedException {
txtAreaKTLName.sendKeys(KOLName);
Thread.sleep(2500);
KolName.click();
}
public void selectCategoryOption(String category) throws InterruptedException {
Thread.sleep(1500);
Select categoryName = new Select(drpCategoryList);
Thread.sleep(1500);
categoryName.selectByVisibleText(category);
}
public void clickSubmitButton() throws InterruptedException {
btnSubmit.click();
Thread.sleep(4000);
}
public void clickNotificationLink() throws InterruptedException {
lnkNotifications.click();
Thread.sleep(1500);
}
public void clickAddNewNotificationLink() throws InterruptedException {
lnkAddNew.click();
Thread.sleep(1500);
btnCancel.click();
}
public void clickMediaLink() {
lnkMedia.click();
}
public void enterFromDate(String date) throws InterruptedException {
Thread.sleep(2000);
fromDate.clear();
fromDate.sendKeys(date);
btnGo.click();
Thread.sleep(3000);
}
public void clickSocialMedia() {
lnkSocialMedia.click();
}
public void clickUpComingEventsLink() throws InterruptedException {
lnkUpcomingEvents.click();
Thread.sleep(2000);
}
public void clickEventSnapshot() throws InterruptedException {
helperEventSnapshot.click();
Thread.sleep(2000);
btnBack.click();
Thread.sleep(1000);
}
public void clickCalendarTab() throws InterruptedException {
tabCalendar.click();
Thread.sleep(2000);
tabDay.click();
Thread.sleep(1000);
}
public void clickMapTab() {
tabMap.click();
}
public void clickOnMailBoxLink() throws InterruptedException {
Thread.sleep(1000);
lnkMailBox.click();
Thread.sleep(1000);
}
public void clickMailsOptions() throws InterruptedException {
lnkInbox.click();
Thread.sleep(1000);
lnkDraft.click();
Thread.sleep(1000);
lnkOutBox.click();
Thread.sleep(1000);
lnkSent.click();
Thread.sleep(1000);
lnkBounced.click();
Thread.sleep(1000);
}
public void clickSettingsOptions() throws InterruptedException {
lnkAccounts.click();
Thread.sleep(1000);
lnkProfile.click();
Thread.sleep(1000);
lnkTemplates.click();
Thread.sleep(1000);
}
public void clickMiscellaneousOptions() throws InterruptedException {
lnkUnsubscribedList.click();
Thread.sleep(1000);
lnkBouncedList.click();
Thread.sleep(1000);
lnkMailMergeStatistics.click();
Thread.sleep(1000);
}
public void clickDocumentLink() {
lnkDocuments.click();
}
public void sortDocumentsAndClickFolder(String sort) throws InterruptedException {
Thread.sleep(1000);
//drpSortBy.click();
Select doc = new Select(drpSortBy);
doc.selectByVisibleText(sort);
Thread.sleep(1000);
lnkFolder.click();
}
public void clickUploadDocumentLink() throws InterruptedException {
Thread.sleep(1000);
lnkUploadDoc.click();
Thread.sleep(1000);
lnkCancel.click();
Thread.sleep(1000);
btnBackToFolder.click();
}
}

View File

@ -0,0 +1,72 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
public class MyLists
{
WebDriver driver;
@FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[5]/a[1]/div[1]")
WebElement MyListTabClick;
@FindBy(how=How.XPATH, using="(//input[@id='listKols'])[1]")
WebElement SelectKol;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']//a")
WebElement ExportExcel;
@FindBy(how=How.XPATH, using="(//input[@id='next'])[1]")
WebElement NextExport;
@FindBy(how=How.XPATH, using="//form[@id='kolPdfExport']//a")
WebElement Exportpdf;
@FindBy(how=How.XPATH, using="//a[.='Manage List']")
WebElement ManageList;
@FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']")
WebElement AddCategory;
@FindBy(how=How.XPATH, using="//input[@id='categoryName']")
WebElement CategoryName;
public MyLists(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void list1()
{
MyListTabClick.click();
}
public void listexportexcel()
{
SelectKol.click();
ExportExcel.click();
NextExport.click();
}
public void listpdf()
{
SelectKol.click();
Exportpdf.click();
}
public void managelistclick()
{
ManageList.click();
}
public void addcategory(String category)
{
AddCategory.click();
CategoryName.sendKeys(category);
}
}

View File

@ -0,0 +1,68 @@
package PageObjects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import Utilities.BrowserUtility;
public class MyListsPage extends BrowserUtility {
@FindBy(how=How.XPATH, using="//div[@class='navLinkMyLists sprite_iconSet']")
WebElement tabMyLists;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Manage List')]")
WebElement tabManageList;
@FindBy(how=How.XPATH, using="//tbody/tr[@id='8']/td[4]/div[2]/a[1]")
WebElement deleteCategory;
@FindBy(how=How.XPATH, using="//input[@id='popup_ok']")
WebElement btnOK;
@FindBy(how=How.XPATH, using="//td[contains(text(),'Rocky')]")
WebElement selectCategory;
@FindBy(how=How.XPATH, using="//a[@onclick='deleteListName(567);']")
WebElement deleteListName;
WebDriver driver;
public MyListsPage(WebDriver driver) {
this.driver=driver;
PageFactory.initElements(driver, this);
}
public void clickMyListTab() {
tabMyLists.click();
}
public void clickManageList() {
tabManageList.click();
}
public void deleteCategory() {
deleteCategory.click();
btnOK.click();
}
public void selectCategory() throws InterruptedException {
selectCategory.click();
Thread.sleep(2000);
}
public void deleteList() {
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("((//*[contains(@id,'listNamesByCategoryResultSet')])//tbody/tr[2]/td[4]/div[2])"))).click();
btnOK.click();
//deleteListName.click();
}
}

View File

@ -0,0 +1,71 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import Utilities.BrowserUtility;
public class NetworkMapsPage extends BrowserUtility
{
WebDriver driver;
@FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[6]/a[1]/div[1]")
WebElement NetworkMapsTabClick;
@FindBy(how=How.XPATH, using="//tr[@class='regionType254']//td[1]")
WebElement GlobalRegionClick;
@FindBy(how=How.XPATH, using="//input[@id='degreeAff']")
WebElement AffClick;
@FindBy(how=How.XPATH, using="//input[@id='degreeEvent']")
WebElement EventClick;
@FindBy(how=How.XPATH, using="//input[@id='degreePub']")
WebElement PubsClick;
@FindBy(how=How.XPATH, using="//input[@value='Reload']")
WebElement ReloadClick;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Hide Sidebar')]")
WebElement Hidesidebar;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Show Sidebar')]")
WebElement Showsidebar;
@FindBy(how=How.XPATH, using="//a[contains(text(),'KTL Geo Network')]")
WebElement GeoNetworkMapsTabClick;
public NetworkMapsPage(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void networkmap()
{
NetworkMapsTabClick.click();
}
public void globalregion()
{
GlobalRegionClick.click();
}
public void allcheckbox()
{
AffClick.click();
EventClick.click();
PubsClick.click();
ReloadClick.click();
}
public void sidebar() throws InterruptedException
{
Hidesidebar.click();
Thread.sleep(4000);
Showsidebar.click();
}
public void geonetworkmap()
{
GeoNetworkMapsTabClick.click();
}
}

View File

@ -0,0 +1,245 @@
package PageObjects;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import Utilities.BrowserUtility;
public class OrganizationPage extends BrowserUtility{
@FindBy(how=How.XPATH, using="//div[@class='navLinkOrg sprite_iconSet']")
WebElement tabOrganization;
@FindBy(how=How.XPATH, using="((//*[contains(@id,'categoryCountry')])//tbody/tr[2]/td[1])")
WebElement lnkfilterCountry;
@FindBy(how=How.XPATH, using="(//img[@class='defaultOrgIcon'])[1]")
WebElement lnkOrganizationProfileSnapShot;
@FindBy(how=How.XPATH, using="//input[@id='orgName']")
WebElement txtAreaOrganizationName;
@FindBy(how=How.XPATH, using="//input[@id='list']")
WebElement cbxOrganization;
@FindBy(how=How.XPATH, using="//tbody/tr/td/p[3]")
WebElement txtCountry;
@FindBy(how=How.XPATH, using="//div[@id='viewType_chzn']")
WebElement drpOrganization;
@FindBy(how=How.XPATH, using="(//div[@class='autocompleteHeading'])[1]")
WebElement selectOrganization;
@FindBy(how=How.XPATH, using="//div[@id='organizationExport']")
WebElement exportOrgExcel;
@FindBy(how=How.XPATH, using="//a[@class='addOrgIcon']")
WebElement lnkNewAddOrg;
@FindBy(how=How.XPATH, using="//input[@type='submit']")
WebElement btnSave;
@FindBy(how=How.XPATH, using="//input[@type='button']")
WebElement btnCancel;
@FindBy(how=How.XPATH, using="//span[@class='record_name']")
WebElement lnkOrgName;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Key People')]")
WebElement tabKeyPeople;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Key People')]")
WebElement lnkAddKeyPeople;
@FindBy(how=How.XPATH, using="//body/div[15]/div[1]/a[1]/span[1]")
WebElement iconCancelAddKeyPeople;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Affiliate Orgs')]")
WebElement tabAffiliateOrg;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Affiliate')]")
WebElement lnkAddAffiliate;
@FindBy(how=How.XPATH, using="//body/div[24]/div[1]/a[1]/span[1]")
WebElement iconCancelAddAffiliate;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Org Network')]")
WebElement tabOrgNetwork;
@FindBy(how=How.XPATH, using="//a[contains(text(),'KTLs')]")
WebElement tabKTLs;
@FindBy(how=How.XPATH, using="//a[@href='#tabs-3']")
WebElement tabOrgNetworkKeyPeople;
String filteredCountry;
WebDriver driver;
public OrganizationPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
public void clickOrganizationTab() {
tabOrganization.click();
}
public void clickCountryFilter() throws InterruptedException {
Thread.sleep(2000);
/*try {
lnkfilterCountry.click();
filteredCountry=lnkfilterCountry.getText();
System.out.println("Country Name"+" "+filteredCountry+" "+"filtering in Refine By section");
Thread.sleep(2000);
}catch(Exception e) {
System.out.println("Catch" +e);
}*/
lnkfilterCountry.click();
filteredCountry=lnkfilterCountry.getText();
System.out.println("Country Name"+" "+filteredCountry+" "+"filtering in Refine By section");
Thread.sleep(2000);
}
public void verifyCountryFilter() throws InterruptedException {
lnkOrganizationProfileSnapShot.click();
Thread.sleep(2000);
String country=txtCountry.getText();
System.out.println("Country Name displayed in Organization profile Snapshot is"+" " +country);
if(country.equalsIgnoreCase(filteredCountry)) {
System.out.println("Organizations are displayed based on Country filter");
}else{
System.out.println("Organizations are not displayed based on Country filter");
}
}
public void selectAnOrganization() {
cbxOrganization.click();
}
public void selectAllOrganization() throws InterruptedException {
Thread.sleep(2000);
drpOrganization.click();
Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_1']"))).click().build().perform();
Thread.sleep(2000);
}
public void searchOrganization(String organization) throws InterruptedException {
txtAreaOrganizationName.sendKeys(organization);
Thread.sleep(3000);
selectOrganization.click();
Thread.sleep(2000);
}
public void selectMyOrganization() throws InterruptedException {
drpOrganization.click();
Thread.sleep(2000);
Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_0']"))).click().build().perform();
Thread.sleep(2000);
}
public void clickExportButton() {
exportOrgExcel.click();
}
public void verifyExcelFileDownload() throws InterruptedException {
Thread.sleep(3000);
File f1=new File("C:\\Users\\hp\\Downloads\\");
/*if(f1.exists()) {
System.out.println("Organization is exported in Excel format");
f1.delete();
}*/
for(File f:f1.listFiles()) {
if (f.getName().startsWith("Organization_")) {
f.delete();
System.out.println("Organization details are exported successfully");
}
}
}
public void clickNewLinkToAddOrganization() {
lnkNewAddOrg.click();
}
public void clickSaveButton() throws InterruptedException {
btnSave.click();
Thread.sleep(2000);
}
public void clickCancelButton() throws InterruptedException {
btnCancel.click();
Thread.sleep(2000);
}
public void verifyUserNavigation() {
String OrgURL=driver.getCurrentUrl();
if(OrgURL.equalsIgnoreCase("https://testcolpal.aisselkolm.com/hills_staging/organizations/list_organizations_client_view")) {
System.out.println("User successfully navigated back to Organization");
}else {
System.out.println("User is not successfully navigated back to Organization");
}
}
public void navigateWithinOrganization() {
lnkOrgName.click();
}
public void clickKeyPeopleTab() throws InterruptedException {
tabKeyPeople.click();
Thread.sleep(2500);
}
public void openAndCloseAddKeyPeopleForm() throws InterruptedException {
lnkAddKeyPeople.click();
Thread.sleep(1500);
iconCancelAddKeyPeople.click();
}
public void clickAffiliateOrgTab() {
tabAffiliateOrg.click();
}
public void openAndCloseAddKeyAffiliateForm() throws InterruptedException {
Thread.sleep(1500);
lnkAddAffiliate.click();
Thread.sleep(2000);
iconCancelAddAffiliate.click();
}
public void clickOrgNetworkTab() {
tabOrgNetwork.click();
}
public void clickKTLsTab() throws InterruptedException {
Thread.sleep(2000);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
tabKTLs.click();
}
public void clickOrgNetworkKeyPeopleTab() throws InterruptedException {
Thread.sleep(1000);
tabOrgNetworkKeyPeople.click();
Thread.sleep(1000);
}
public void oneMethod() {
}
}

View File

@ -0,0 +1,135 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
import Utilities.BrowserUtility;
public class ReportsPage extends BrowserUtility
{
WebDriver driver;
@FindBy(how=How.LINK_TEXT, using="Reports")
WebElement ReportsTabClick;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/a[1]")
WebElement ExportExcel;
@FindBy(how=How.XPATH, using="//a[@class='chzn-single']//div//b")
WebElement InteractiontypeDropdown;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_1']")
WebElement InteractiontypeDropdown1;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_2']")
WebElement InteractiontypeDropdown2;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_3']")
WebElement InteractiontypeDropdown3;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_4']")
WebElement InteractiontypeDropdown4;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_5']")
WebElement InteractiontypeDropdown5;
@FindBy(how=How.XPATH, using="//a[text()='Activity']")
WebElement ActivityClick;
@FindBy(how=How.XPATH, using="//a[text()='Profile Score']")
WebElement ProfileScoreClick;
@FindBy(how=How.XPATH, using="//a[text()='Events']")
WebElement EventsClick;
@FindBy(how=How.XPATH, using="//span[text()='Events By Type']")
WebElement EventsbyType;
@FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_0']")
WebElement EventsByTimeline;
@FindBy(how=How.XPATH, using="//tr[@class='country254']//td[1]")
WebElement Refinebycountry;
@FindBy(how=How.XPATH, using="//a[text()='Affiliations']")
WebElement AffiliationsClick;
@FindBy(how=How.XPATH, using="//a[text()='Publications']")
WebElement PubsClick;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Segmentation')]")
WebElement SegmentationClick;
@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[8]/a[1]")
WebElement BudgetTrackerClick;
public ReportsPage(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void reportstab()
{
ReportsTabClick.click();
}
public void exportexcel()
{
ExportExcel.click();
}
public void interactiontypes()
{
InteractiontypeDropdown.click();
InteractiontypeDropdown1.click();
InteractiontypeDropdown2.click();
InteractiontypeDropdown3.click();
InteractiontypeDropdown4.click();
InteractiontypeDropdown5.click();
}
public void activity()
{
ActivityClick.click();
}
public void profilescore()
{
ProfileScoreClick.click();
}
public void events()
{
EventsClick.click();
Refinebycountry.click();
}
public void events2()
{
EventsbyType.click();
EventsByTimeline.click();
}
public void affiliations()
{
AffiliationsClick.click();
}
public void publications()
{
PubsClick.click();
}
public void segmentation()
{
SegmentationClick.click();
}
public void budgettracker()
{
BudgetTrackerClick.click();
}
}

View File

@ -0,0 +1,118 @@
package PageObjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
public class TrackPage
{
WebDriver driver;
@FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[4]/a[1]/div[1]")
WebElement TrackTabClick;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo tooltop-left']//a[@href='#']")
WebElement ExportExcel;
@FindBy(how=How.XPATH, using="//a[@id='report']")
WebElement ReportSubTab;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Chart')]")
WebElement ChartSubTab;
@FindBy(how=How.XPATH, using="//a[@id='calender']")
WebElement CalendarSubTab;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Payments')]")
WebElement PaymentsSubTab;
@FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']")
WebElement AddPayments;
@FindBy(how=How.XPATH, using="//a[contains(text(),'Contracts')]")
WebElement ContractsSubTab;
@FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']")
WebElement AddContracts;
@FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[15]")
WebElement CloseContracts;
@FindBy(how=How.XPATH, using="(//a[contains(text(),'Plan')])[1]")
WebElement PlanClick;
@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo tooltop-left']//a")
WebElement ObjExportExcel;
@FindBy(how=How.XPATH, using="(//a[contains(text(),'Plan')])[2]")
WebElement PlansClick;
public TrackPage(WebDriver driver)
{
this.driver=driver;
PageFactory.initElements(driver,this);
}
public void tracktab()
{
TrackTabClick.click();
}
public void exportexcel()
{
ExportExcel.click();
}
public void reportsubtab()
{
ReportSubTab.click();
}
public void chartsubtab()
{
ChartSubTab.click();
}
public void calendarsubtab()
{
CalendarSubTab.click();
}
public void paymentssubtab()
{
PaymentsSubTab.click();
}
public void addpayments()
{
AddPayments.click();
}
public void contractssubtab()
{
ContractsSubTab.click();
}
public void addcontract() throws InterruptedException
{
AddContracts.click();
Thread.sleep(6000);
CloseContracts.click();
Thread.sleep(6000);
}
public void plansubtab()
{
PlanClick.click();
}
public void obejectiveexportexcel()
{
ObjExportExcel.click();
}
public void planssubtab()
{
PlansClick.click();
}
}

View File

@ -0,0 +1,196 @@
package StepDefinitions;
import PageObjects.ContactsPage;
import PageObjects.MyLists;
import PageObjects.MyListsPage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class ContactsTabSteps extends BrowserUtility{
//ContactsPage contactsPage=pageObjectManager.getContactsPage();
PageObjectManager pageObjectManager=new PageObjectManager(driver);
ContactsPage contactsPage=pageObjectManager.getContactsPage();
MyListsPage myListPage=pageObjectManager.getMyListsPage();
//contactsPage=pageObjectManager.getContactsPage();
/* @After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}*/
@And("user clicks on country filter in the contacts tab")
public void user_clicks_on_country_filter_in_the_contacts_tab() throws InterruptedException{
//pageObjectManager = new PageObjectManager(driver);
contactsPage.filterCountryName();
}
@Then("user should display with filtered HCP's based country filter")
public void user_should_display_with_filtered_HCPs_based_on_country_filter() throws InterruptedException{
contactsPage.clickOnHCPProfile();
//contactsPage.clickViewProfile();
contactsPage.verifyCountryName();
}
@And("user click on New icon to add KOL")
public void user_click_on_New_icon_to_add_KOL(){
contactsPage.clickAddHcp();
}
@And("user click on Save button without adding details in add KOL page")
public void user_click_on_Save_button_without_adding_details_in_add_KOL_page() throws InterruptedException{
contactsPage.clickSaveButton();
}
@Then("Required error message shown to user for mandatory fields")
public void Required_error_message_shown_to_user_for_mandatory_fields() {
contactsPage.verifyErrorMessageShownForMandatoryFields();
}
@When("user clicks on Cancel button in add KOL page")
public void user_clicks_on_Cancel_button_in_add_KOL_page(){
contactsPage.clickCancelButton();
}
@And("user should be taken to contacts page")
public void user_should_be_taken_to_contacts_page(){
contactsPage.verifyUserNavigationToContacts();
}
@And("select a KOL by clicking on checkbox")
public void select_a_KOL_by_clicking_on_checkbox() {
contactsPage.selectAKOL();
}
@And("user click on PDF to download details of KOL")
public void user_click_on_PDF_to_download_details_of_KOL() {
contactsPage.clickOnPDFLink();
}
@Then("PDF should get download")
public void PDF_should_get_download() throws InterruptedException {
contactsPage.verifyPDFFileDownload();
}
@And("user click on Excel to download details of KOL")
public void user_click_on_Excel_to_download_details_of_KOL() {
contactsPage.clickOnExcelLink();
}
@And("user selects Full profile checkbox")
public void user_selects_Full_profile_checkbox() throws InterruptedException {
contactsPage.selectFullProfile();
}
@And("user click on Export button")
public void user_clicks_on_Export_button() {
contactsPage.clickExportButton();
}
@Then("KOL full profile Excel downloaded")
public void KOL_full_profile_Excel_downloaded() throws InterruptedException {
contactsPage.verifyExcelFileDownload();
}
@And("user selects All Contacts in Assigned dropdown")
public void user_selects_All_Contacts_in_Assigned_dropdown() throws InterruptedException {
contactsPage.selectAllContacts();
}
@And("user click on Assign link")
public void user_click_on_Assign_link() {
contactsPage.clickAssignLink();
}
@And("user select Hill Manager to assign")
public void user_select_Hill_Manager_to_assign() throws InterruptedException {
contactsPage.selectUser();
}
@And("user click on Assign button")
public void user_click_on_Assign_button() throws InterruptedException {
contactsPage.clickAssignButton();
}
@Then("KOL should get assign to Hill Manager")
public void KOL_should_get_assign_to_Hill_Manager() {
System.out.println("Passed: KOL is successfully assigned to Hill Manager");
}
@And ("user click on Email link")
public void user_click_on_Email_link() throws InterruptedException {
contactsPage.clickEmailLink();
}
@And ("user enter to email(.+)")
public void user_enter_to_email(String email) throws InterruptedException {
contactsPage.enterToEmail(email);
}
@And ("user click on send button")
public void user_click_on_send_button() throws InterruptedException {
contactsPage.clickSendButton();
}
@Then ("KOL profile emailed successfully")
public void KOL_profilr_emailed_successfully() {
System.out.println("Passed: KOL profile succesfully sent to an Email");
}
@And("user click on List icon link")
public void user_click_on_List_icon_link() {
contactsPage.clickListLink();
}
@And("user add new category and list name")
public void user_add_new_category_and_list_name() throws InterruptedException{
contactsPage.selectAddNewCategory();
contactsPage.selectAddNewList();
}
@And("user click on Save button")
public void user_click_on_Save_button() throws InterruptedException {
contactsPage.clickListSaveButton();
}
@And("user navigates to MyLists tab")
public void user_navigates_to_MyLists_tab() {
// myListPage=pageObjectManager.getMyListsPage();
myListPage.clickMyListTab();
}
@And("user click on Manage List tab")
public void user_click_on_Manage_Lists_tab() {
myListPage.clickManageList();
}
@And("user select category to be deleted")
public void user_select_category_to_be_deleted() throws InterruptedException {
myListPage.selectCategory();
}
@And("user delete the list name")
public void user_delete_the_list_name() {
myListPage.deleteList();
}
@And("user delete the category created")
public void user_delete_the_category_created() {
myListPage.deleteCategory();
}
@And("user click on Unassign button")
public void user_click_on_Unassign_button() throws InterruptedException {
contactsPage.clickUnAssignButton();
}
}

View File

@ -0,0 +1,32 @@
package StepDefinitions;
import java.util.Properties;
import org.openqa.selenium.WebDriver;
import PageObjects.LoginPage;
import Utilities.BrowserUtility;
import Utilities.PropertiesFileReader;
import io.cucumber.java.en.Given;
import manager.PageObjectManager;
public class HillsLoginSteps
{
PageObjectManager pageObjectManager;
PropertiesFileReader obj = new PropertiesFileReader();
WebDriver driver;
LoginPage login;
@Given("^user login to hills application with (.+) and (.+)$")
public void user_login_to_hills_application_with_username_and_password(String username, String password) throws InterruptedException {
Properties properties=obj.getProperty();
driver=BrowserUtility.OpenBrowser(driver, properties.getProperty("browser.name"), properties.getProperty("browser.baseURL"));
pageObjectManager=new PageObjectManager(driver);
login=pageObjectManager.getLoginPage();
login.enterUsername(username);
login.enterPassword(password);
login.clickLoginButton();
// driver.close();
}
}

View File

@ -0,0 +1,85 @@
package StepDefinitions;
import java.util.Properties;
import org.openqa.selenium.WebDriver;
import PageObjects.HomePage;
import PageObjects.LoginPage;
import Utilities.BrowserUtility;
import Utilities.PropertiesFileReader;
import io.cucumber.java.After;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class HomeTabSteps extends BrowserUtility
{
HomePage home;
PageObjectManager pageObjectManager;
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
// @Given("^user login to hills application with <username> and <password>$")
// public void user_login_to_hills_application_with <username> and <password>()
// {
// System.err.println("Verified summary show more link");
// }
@Given("^user is on home tab$")
public void user_is_on_home_tab()
{
pageObjectManager=new PageObjectManager(driver);
home=pageObjectManager.getHomePage();
System.err.println("Verified summary show more link");
}
@When("^user clicks on showmore link in summary section$")
public void user_clicks_on_showmore_link_in_summary_section() throws InterruptedException
{
// pageObjectManager=new PageObjectManager(driver);
// home=pageObjectManager.getHomePage();
home.clickshowmorelink();
Thread.sleep(5000);
driver.navigate().back();
}
@Then("^User should land on contact listing page$")
public void User_should_land_on_contact_listing_page() throws InterruptedException
{
// home.clickshowmorelink();
System.err.println("Verified");
}
@When("^user clicks on showmore link in recent activity section$")
public void user_clicks_on_showmore_link_in_recent_activity_section() throws InterruptedException
{
home.clickrashowmorelink();
Thread.sleep(5000);
driver.navigate().back();
}
@When("^user clicks on view all news button in home page$")
public void userclicksonviewallnewsbuttoninhomepage() throws InterruptedException
{
home.clickallnewslink();
Thread.sleep(5000);
driver.navigate().back();
}
@Then("^User should land on media main page$")
public void User_should_land_on_media_main_page()
{
System.err.println("Verified");
}
}

View File

@ -0,0 +1,163 @@
package StepDefinitions;
import PageObjects.KOLProfilePage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.And;
import manager.PageObjectManager;
public class KOLProfileSteps extends BrowserUtility{
PageObjectManager pageObjectManager=new PageObjectManager(driver);
KOLProfilePage kolProfilePage=pageObjectManager.getKOLProfilePage();
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
@And("user add user notes(.+)")
public void user_add_user_notes(String usernote) {
kolProfilePage.addUserNotes(usernote);
}
@And("user click on add training and close the pop-up")
public void user_click_on_add_training_and_close_the_popup() throws InterruptedException{
kolProfilePage.openAndCloseAddTraining();
}
@And("user click on add Honors and Rewards and close the pop-up")
public void user_click_on_add_Honors_and_Rewards_and_close_the_popup()throws InterruptedException{
kolProfilePage.openAndCloseAddHonorsAndAwards();
}
@And("user navigated to details tab")
public void user_navigated_to_details_tab() {
kolProfilePage.clickDetailsTab();
}
@And("user click on Add location and close the popup")
public void userclickonAddlocationandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddLocation();
}
@And("user click on Add phone and close the popup")
public void userclickonAddphoneandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddPhone();
}
@And("user click on Add staff and close the popup")
public void userclickonAddstaffandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddStaff();
}
@And("user click on Add email and close the popup")
public void userclickonAddemailandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddEmail();
}
@And("user click on Add assign and close the popup")
public void userclickonAddassignandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddAssign();
}
@And("user click on Track tab")
public void userclickonTracktab() {
kolProfilePage.clickTrackTab();
}
@And("user export interactions")
public void userexportinteractions() throws InterruptedException {
kolProfilePage.exportInteractions();
}
@And("user click on Report tab within the interactions tab")
public void userclickonReporttabwithintheinteractionstab() throws InterruptedException {
kolProfilePage.clickReportTab();
}
@And("user click on Chart tab within the interactions tab")
public void userclickonCharttabwithintheinteractionstab() throws InterruptedException {
kolProfilePage.clickChartTab();
}
@And("user click on Calendar tab within the interactions tab")
public void userclickonCalendartabwithintheinteractionstab() throws InterruptedException {
kolProfilePage.clickCalendarTab();
}
@And("user click on payments tab within track")
public void userclickonpaymentstabwithintrack() throws InterruptedException {
kolProfilePage.clickPaymentTab();
}
@And("user click on Add payment and close the popup")
public void userclickonAddpaymentandclosethepopup() throws InterruptedException {
kolProfilePage.addAndCloseAddPayment();
}
@And("user click on Add contract and close the popup")
public void userclickonAddcontractandclosethepopup() throws InterruptedException {
kolProfilePage.clickContractTab();
kolProfilePage.addAndCloseAddContract();
}
@And("user click on Affiliation tab")
public void userclickonAffiliationtab() {
kolProfilePage.clickAffiliationTab();
}
@And("user click on Add affiliation and close the popup")
public void userclickonAddaffiliationandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddAffiliation();
}
@And("user click on Reports org tab")
public void userclickonReportsorgtab() throws InterruptedException {
kolProfilePage.clickReportsOrgTab();
}
@And("user click on Reports eng tab")
public void userclickonReportsengtab() throws InterruptedException {
kolProfilePage.clickReportEngTab();
}
@And("user click on Events tab")
public void userclickonEventstab() {
kolProfilePage.clickEventTab();
}
@And("user click on Add New Event and close the popup")
public void userclickonAddNewEventandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddNewEvent();
}
@And("user click on Events Charts tab")
public void userclickonEventsChartstab() throws InterruptedException {
kolProfilePage.clickTabEventsCharts();
}
@And("user click on Publications tab")
public void userclickonPublicationstab() {
kolProfilePage.clickPublicationsTab();
}
@And("user click on Add New Publication and close the popup")
public void userclickonAddNewPublicationandclosethepopup() throws InterruptedException {
kolProfilePage.openAndCloseAddNewPublication();
}
@And("user click on Pubs Charts tab")
public void userclickonPubsChartstab() throws InterruptedException {
kolProfilePage.clickPubsCharts();
}
@And("user export all Affiliations in Excel")
public void userexportallAffiliationsinExcel() throws InterruptedException {
kolProfilePage.exportAffiliations();
}
@And("user export all Events in Excel")
public void userexportallEventsinExcel() throws InterruptedException {
kolProfilePage.exportEvents();
}
@And("user export all Publications in Excel")
public void userexportallPublicationsinExcel() throws InterruptedException {
kolProfilePage.exportPublications();
}
}

View File

@ -0,0 +1,157 @@
package StepDefinitions;
import PageObjects.MorePage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class MoreSteps extends BrowserUtility{
PageObjectManager pageObjectManager=new PageObjectManager(driver);
MorePage morePage=pageObjectManager.getMorePage();
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
@When("user click on More tab")
public void userclickonMoretab() {
morePage.clickMoreTab();
}
@And("user click on Profile request link")
public void userclickonProfilerequestlink() {
morePage.clickProfileRequestLink();
}
@And("user exports pending approvals in Excel")
public void userexportspendingapprovalsinExcel() throws InterruptedException {
morePage.exportPendingApprovalsInExcel();
}
@And("user exports all profile request in Excel")
public void userexportsallprofilerequestinExcel() throws InterruptedException {
morePage.exportProfileRequestsInExcel();
}
@And("user click on Org profile request link")
public void userclickonOrgprofilerequestlink() {
morePage.clickOrgProfileRequest();
}
@And("user exports all organization request in Excel")
public void userexportsallorganizationrequestinExcel() throws InterruptedException {
morePage.exportProfileRequestsInExcel();
}
@And("user click on Recent Activity link")
public void userclickonRecentActivitylink() {
morePage.clickRecentActivityLink();
}
@And("user enter (.+) and submit")
public void userenterKOLNameandsubmit(String KOLName) throws InterruptedException {
morePage.enterKOLName(KOLName);
}
@And("user filter category(.+)")
public void userfiltercategory(String category) throws InterruptedException {
morePage.selectCategoryOption(category);
}
@Then("only filtered KOL activities should be shown")
public void onlyfilteredKOLactivitiesshouldbeshown() {
System.out.println("Passed: Only filtered recent activities are shown");
}
@And("user click on Notifications link")
public void userclickonNotificationslink() throws InterruptedException {
morePage.clickNotificationLink();
}
@And("user open and Close Add new notification form")
public void useropenandCloseAddnewnotificationform() throws InterruptedException {
morePage.clickAddNewNotificationLink();
}
@And("user click on Media link")
public void userclickonMedialink() {
morePage.clickMediaLink();
}
@And("user filter media based on from date (.+)")
public void userfiltermediabasedonfromdate(String date) throws InterruptedException {
morePage.enterFromDate(date);
}
@And("user click on Social Media link")
public void userclickonSocialMedialink() {
morePage.clickSocialMedia();
}
@And("user click on Up coming events link")
public void userclickonUpcomingeventslink() throws InterruptedException {
morePage.clickUpComingEventsLink();
}
@And("user click on event snapshot")
public void userclickoneventsnapshot() throws InterruptedException {
morePage.clickEventSnapshot();
}
@And("user click on calendar tab and filter events by day")
public void userclickoncalendartabandeventsbyfilterday() throws InterruptedException {
morePage.clickCalendarTab();
}
@And("user click on Map tab")
public void userclickonMaptab() {
morePage.clickMapTab();
}
@And("user click on MailBox link")
public void userclickonMailBoxlink() throws InterruptedException {
morePage.clickOnMailBoxLink();
}
@And("user click on different Mail options")
public void userclickondifferentMailoptions() throws InterruptedException {
morePage.clickMailsOptions();
}
@And("user click on different Setting options")
public void userclickondifferentSettingoptions() throws InterruptedException {
morePage.clickSettingsOptions();
}
@And("user click on different Miscellaneous options")
public void userclickondifferentMiscellaneousoptions() throws InterruptedException {
morePage.clickMiscellaneousOptions();
}
@And("user click on Document link")
public void userclickonDocumentlink() {
morePage.clickDocumentLink();
}
@And("user sort document (.+) and click on folder")
public void usersortdocumentandclickonfolder(String sort) throws InterruptedException {
morePage.sortDocumentsAndClickFolder(sort);
}
@And("user open and close Upload doc window")
public void useropenandcloseUploaddocwindow() throws InterruptedException {
morePage.clickUploadDocumentLink();
}
}

View File

@ -0,0 +1,87 @@
package StepDefinitions;
import PageObjects.MyLists;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class MyListsSteps extends BrowserUtility
{
MyLists lists;
PageObjectManager pageObjectManager;
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
// @After
// public void close()
// {
// driver.quit();
// }
@Given("^user is on mylists tab$")
public void user_is_on_mylists_tab()
{
pageObjectManager=new PageObjectManager(driver);
lists=pageObjectManager.getMyLists();
lists.list1();
System.err.println("click on Mylists tab");
}
@When("^user clicks on mylists tab$")
public void user_clicks_on_mylists_tab() throws InterruptedException
{
System.err.println("click on Mylists tab");
Thread.sleep(6000);
}
@Then("^default should show public lists tab$")
public void default_should_show_public_lists_tab()
{
System.err.println("default should show public lists tab");
}
@When("^user clicks on export excel icon$")
public void user_clicks_on_export_excel_icon()
{
lists.listexportexcel();
System.err.println("Export excel");
}
@Then("^selected kols details should download$")
public void selected_kols_details_should_download()
{
System.err.println("downloaded");
}
@When("^user clicks on export pdf icon$")
public void user_clicks_on_export_pdf_icon()
{
lists.listpdf();
System.err.println("Export excel");
}
@When("^user clicks on manage list subtab$")
public void user_clicks_on_manage_list_subtab()
{
lists.managelistclick();
System.err.println("Manage List click");
}
@Then("^user clicks on add category(.+)$")
public void user_clicks_on_add_category(String category)
{
lists.addcategory(category);
System.err.println("Add category");
}
}

View File

@ -0,0 +1,144 @@
package StepDefinitions;
import PageObjects.NetworkMapsPage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class NetworkMapsSteps extends BrowserUtility
{
NetworkMapsPage networmMap;
PageObjectManager pageObjectManager;
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
// @After
// public void close()
// {
// driver.quit();
// }
@Given("^user clicks on network maps tab$")
public void user_clicks_on_network_maps_tab()
{
pageObjectManager=new PageObjectManager(driver);
networmMap=pageObjectManager.getNetworkMapsTab();
networmMap.networkmap();
System.err.println("click on Network map tab");
}
@When("^network map page should load$")
public void network_map_page_should_load() throws InterruptedException
{
Thread.sleep(6000);
System.err.println("click on Network map loaded successfully");
}
@Then("^User should show network map connections$")
public void User_should_show_network_map_connections()
{
System.err.println("User should show network map connections");
}
@When("^user clicks on refine by global region section$")
public void user_clicks_on_refine_by_global_region_section() throws InterruptedException
{
networmMap.globalregion();
Thread.sleep(6000);
System.err.println("global region section");
}
@When("^user clicks on Affiliations Events Pubs checkboxs$")
public void user_clicks_on_Affiliations_Events_Pubs_checkboxs() throws InterruptedException
{
networmMap.allcheckbox();
Thread.sleep(6000);
System.err.println("all checkbox");
}
@When("^user clicks on Hide Sidebar Show Sidebar$")
public void user_clicks_on_Hide_Sidebar_Show_Sidebar() throws InterruptedException
{
networmMap.sidebar();
Thread.sleep(6000);
}
@Given("^user clicks on network maps2 tab$")
public void user_clicks_on_network_maps2_tab()
{
pageObjectManager=new PageObjectManager(driver);
networmMap=pageObjectManager.getNetworkMapsTab();
networmMap.networkmap();
networmMap.geonetworkmap();
System.err.println("click on Geo Network map tab");
}
// @Given("^user clicks on geo network maps tab$")
// public void user_clicks_on_geo_network_maps_tab()
// {
// networmMap.geonetworkmap();
// System.err.println("click on geo Network map tab");
// }
@When("^geo network map page should load$")
public void geo_network_map_page_should_load() throws InterruptedException
{
Thread.sleep(6000);
System.err.println("click on Network map loaded successfully");
}
@Then("^User should show geo network map connections$")
public void User_should_show_geo_network_map_connections()
{
System.err.println("User should show network map connections");
}
@When("^user clicks on geo refine by global region section$")
public void user_clicks_on_geo_refine_by_global_region_section() throws InterruptedException
{
networmMap.globalregion();
Thread.sleep(6000);
System.err.println("global region section");
}
@When("^user clicks on geo Affiliations Events Pubs checkboxs$")
public void user_clicks_on_geo_Affiliations_Events_Pubs_checkboxs() throws InterruptedException
{
networmMap.allcheckbox();
Thread.sleep(6000);
System.err.println("all checkbox");
}
@When("^user clicks on geo Hide Sidebar Show Sidebar$")
public void user_clicks_on_geo_Hide_Sidebar_Show_Sidebar() throws InterruptedException
{
networmMap.sidebar();
Thread.sleep(6000);
}
}

View File

@ -0,0 +1,168 @@
package StepDefinitions;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import PageObjects.OrganizationPage;
import Utilities.BrowserUtility;
import io.cucumber.core.api.Scenario;
import io.cucumber.java.After;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
import manager.PageObjectManager;
public class OrganizationSteps extends BrowserUtility{
PageObjectManager pageObjectManager=new PageObjectManager(driver);
OrganizationPage organizationPage=pageObjectManager.getOrganizationPage();
@After
public void takeScreenshotOnFailure(Scenario scenario) {
if (scenario.isFailed()) {
TakesScreenshot ts = (TakesScreenshot) driver;
byte[] src = ts.getScreenshotAs(OutputType.BYTES);
scenario.embed(src, "image/png", "screenshot");
}
}
@And("user click on Organization tab")
public void userclickonOrganizationtab() throws InterruptedException {
/* ExtentTest logInfo=null;
try {
test = extent.createTest(Feature.class, "Organization tab functionality verification");
test = test.createNode(Scenario.class, "Verify user can perform multiple actions in Organization tab");
logInfo = test.createNode(new GherkinKeyword("Given"),"user click on Organization tab");
organizationPage.clickOrganizationTab();
logInfo.pass("clicked on Organization");
}catch(AssertionError | Exception e) {
testStepHandle("FAIL", logInfo, e);
}/
organizationPage.clickOrganizationTab();
}
@And("user clicks on country filter in the Organization tab")
public void userclicksoncountryfilterintheOrganizationtab() throws InterruptedException {
/ ExtentTest logInfo=null;
try {
logInfo = test.createNode(new GherkinKeyword("And"),"user clicks on country filter in the Organization tab");
organizationPage.clickCountryFilter();
logInfo.pass("clicked on Country filter");
}catch(AssertionError | Exception e) {
testStepHandle("FAIL", logInfo, e);
}
logInfo.pass("clicked on Country filter");/
organizationPage.clickCountryFilter();
}
@Then("user should display with filtered KOLs based country filter")
public void usershoulddisplaywithfilteredKOLsbasedcountryfilter() throws InterruptedException {
/ ExtentTest logInfo=null;
try {
logInfo = test.createNode(new GherkinKeyword("Then"),"user clicks on country filter in the Organization tab");
organizationPage.verifyCountryFilter();
logInfo.pass("KOL's filtered based on country");
}catch(AssertionError | Exception e) {
testStepHandle("FAIL", logInfo, e);
}*/
organizationPage.verifyCountryFilter();
}
@And("user select a Organization by clicking checkbox")
public void userselectaOrganizationbyclickingcheckbox() {
organizationPage.selectAnOrganization();
}
@And("user selects All Organizations in Assigned dropdown")
public void userselectsAllOrganizationsinAssigneddropdown() throws InterruptedException {
organizationPage.selectAllOrganization();
}
@Then("Organization should get unassign from Hill Manager")
public void OrganizationshouldgetunassignfromHillManager() {
System.out.println("Passed: Organization successfully unassigned From Hill Manager");
}
@And("user search an Organization name(.+)")
public void usersearchanOrganizationname(String organization) throws InterruptedException {
organizationPage.searchOrganization(organization);
}
@And("user selects My Organizations in Assigned dropdown")
public void userselectsMyOrganizationsinAssigneddropdown() throws InterruptedException {
organizationPage.selectMyOrganization();
}
@And("user click on Excel to export organization")
public void userclickonExceltoexportorganization() throws InterruptedException {
organizationPage.clickExportButton();
organizationPage.verifyExcelFileDownload();
}
@And("user click on New link to add organization")
public void userclickonNewlinktoaddorganization() {
organizationPage.clickNewLinkToAddOrganization();
}
@And("user click on Save button without adding organization details")
public void userclickonSavebuttonwithoutaddingorganizationdetails() throws InterruptedException {
organizationPage.clickSaveButton();
}
@And("user click on Cancel button in new organization form")
public void userclickonCancelbuttoninneworganizationform() throws InterruptedException {
organizationPage.clickCancelButton();
}
@Then("user should be taken to organization home tab")
public void usershouldbetakentoorganizationhometab() {
organizationPage.verifyUserNavigation();
}
@And("user navigate within organization")
public void usernavigatewithinorganization() {
organizationPage.navigateWithinOrganization();
}
@And("user click on Key People tab")
public void userclickonKeyPeopletab() throws InterruptedException {
organizationPage.clickKeyPeopleTab();
}
@And("user open and close Add Key People form")
public void useropenandcloseAddKeyPeopleform() throws InterruptedException {
organizationPage.openAndCloseAddKeyPeopleForm();
}
@And("user click on Affiliate Org tab")
public void userclickonAffiliateOrgtab() {
organizationPage.clickAffiliateOrgTab();
}
@And("user click on Add affiliate and close the popup")
public void userclickonAddaffiliateandclosethepopup() throws InterruptedException {
organizationPage.openAndCloseAddKeyAffiliateForm();
}
@And("user click on Org Network tab")
public void userclickonOrgNetworktab() {
organizationPage.clickOrgNetworkTab();
}
@And("user click on KTL's tab within Org network tab")
public void userclickonKTLstabwithinOrgnetworktab () throws InterruptedException{
organizationPage.clickKTLsTab();
}
@And("user click on KeyPeople tab within Org network tab")
public void userclickonKeyPeopletabwithinOrgnetworktab() throws InterruptedException {
organizationPage.clickOrgNetworkKeyPeopleTab();
}
}

View File

@ -0,0 +1,148 @@
package StepDefinitions;
import PageObjects.ReportsPage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class ReportsSteps extends BrowserUtility
{
ReportsPage reports;
PageObjectManager pageObjectManager;
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
// @After
// public void close()
// {
// driver.quit();
// }
@Given("^user is on reports tab$")
public void user_is_on_reports_tab()
{
pageObjectManager=new PageObjectManager(driver);
reports=pageObjectManager.getReports();
reports.reportstab();
System.err.println("click on REports tab");
}
@When("^user clicks on reports tab$")
public void user_clicks_on_reports_tab() throws InterruptedException
{
Thread.sleep(6000);
}
@Then("^default interaction listing page shoud show$")
public void default_interaction_listing_page_shoud_show()
{
System.err.println("downloaded");
}
@When("^user clicks on export excel icon2$")
public void user_clicks_on_export_excel_icon2() throws InterruptedException
{
Thread.sleep(6000);
reports.exportexcel();
}
@When("^user clicks on interaction type dropdown$")
public void user_clicks_on_interaction_type_dropdown() throws InterruptedException
{
Thread.sleep(6000);
reports.interactiontypes();
}
@And("^user clicks on monthly by interaction type$")
public void user_clicks_on_monthly_by_interaction_type() throws InterruptedException
{
Thread.sleep(6000);
}
@And("^user clicks on monthly by business segment$")
public void user_clicks_on_monthly_by_business_segment() throws InterruptedException
{
Thread.sleep(6000);
}
@And("^user clicks on monthly by category$")
public void user_clicks_on_monthly_by_category() throws InterruptedException
{
Thread.sleep(6000);
}
@And("^user clicks on monthly by contact type$")
public void user_clicks_on_monthly_by_contact_type() throws InterruptedException
{
Thread.sleep(6000);
}
@And("^user clicks on monthly by topic$")
public void user_clicks_on_monthly_by_topic() throws InterruptedException
{
Thread.sleep(6000);
}
@When("^user clicks on activity subtab$")
public void user_clicks_on_activity_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.activity();
}
@When("^user clicks on profile score subtab$")
public void user_clicks_on_profile_score_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.profilescore();
}
@When("^user clicks on events subtab$")
public void user_clicks_on_events_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.events();
}
@When("^user clicks on affiliations subtab$")
public void user_clicks_on_affiliations_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.affiliations();
}
@When("^user clicks on publications subtab$")
public void user_clicks_on_publications_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.publications();
}
@When("^user clicks on segmentation subtab$")
public void user_clicks_on_segmentation_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.segmentation();
}
@When("^user clicks on budget tracker subtab$")
public void user_clicks_on_budget_tracker_subtab() throws InterruptedException
{
Thread.sleep(6000);
reports.budgettracker();
}
}

View File

@ -0,0 +1,175 @@
package StepDefinitions;
import org.junit.AfterClass;
import org.openqa.selenium.WebDriver;
import PageObjects.TrackPage;
import Utilities.BrowserUtility;
import io.cucumber.java.After;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import manager.PageObjectManager;
public class TrackTabSteps extends BrowserUtility
{
TrackPage track;
PageObjectManager pageObjectManager;
// @After
// public void close()
// {
// driver.quit();
// }
@After
public static void closeBrowser() throws Exception{
if (driver == null) {
return;
}
driver.quit();
driver = null;
}
@Given("^user is on Track tab$")
public void user_is_on_Track_tab()
{
pageObjectManager=new PageObjectManager(driver);
track=pageObjectManager.getTrackTab();
track.tracktab();
System.err.println("click on track tab");
}
@When("^user clicks on export excel icon in interaction grid$")
public void user_clicks_on_export_excel_icon_in_interaction_grid() throws InterruptedException
{
track.exportexcel();
Thread.sleep(6000);
}
@Then("^User should download interactions details$")
public void User_should_download_interaction_details()
{
System.err.println("downloaded");
}
@When("^user clicks on report sutab$")
public void user_clicks_on_report_sutab() throws InterruptedException
{
track.reportsubtab();
Thread.sleep(6000);
}
@Then("^User should show interaction report$")
public void User_should_show_interaction_report()
{
System.err.println("Verified");
}
@When("^user clicks on chart sutab$")
public void user_clicks_on_chart_sutab() throws InterruptedException
{
track.chartsubtab();
Thread.sleep(6000);
}
@Then("^User should show interactions chart$")
public void User_should_show_interactions_chart ()
{
System.err.println("Verified");
}
@When("^user clicks on calendar sutab$")
public void user_clicks_on_calendar_sutab() throws InterruptedException
{
track.calendarsubtab();
Thread.sleep(6000);
}
@Then("^User should show interactions in calendar$")
public void User_should_show_interactions_in_calendar()
{
System.err.println("Verified");
}
@When("^user clicks on payments tab$")
public void user_clicks_on_payments_tab() throws InterruptedException
{
track.paymentssubtab();
Thread.sleep(6000);
}
@Then("^User should show payment details$")
public void User_should_show_payment_details()
{
System.err.println("Verified");
}
@Given("^user is on payments tab$")
public void user_is_on_payments_tab()
{
System.err.println("click on payments tab");
}
@When("^user clicks on add payment button$")
public void user_clicks_on_add_payment_button() throws InterruptedException
{
track.addpayments();
Thread.sleep(6000);
}
@Then("^user should show add payment form$")
public void user_should_show_add_payment_form()
{
System.err.println("Verified");
}
@When("^user clicks on contracts tab$")
public void user_clicks_on_contracts_tab() throws InterruptedException
{
track.contractssubtab();
}
@When("^user clicks on add contracts button$")
public void user_clicks_on_add_contracts_button() throws InterruptedException
{
track.addcontract();
}
@Then("^User should show contracts details$")
public void Usershouldshowcontractsdetails()
{
}
@Then("^user should show add contracts form$")
public void user_should_show_add_contracts_form()
{
System.err.println("Verified");
}
@When("^user clicks on plan subtab$")
public void user_clicks_on_plan_subtab() throws InterruptedException
{
track.plansubtab();
}
@When("^user clicks on objective export excel$")
public void user_clicks_on_objective_export_excel() throws InterruptedException
{
track.obejectiveexportexcel();
}
@When("^user clicks on plans subtab$")
public void user_clicks_on_plans_subtab() throws InterruptedException
{
track.planssubtab();
}
}

View File

@ -0,0 +1,28 @@
package StepDefinitions;
import org.junit.AfterClass;
import org.junit.runner.RunWith;
import Utilities.BrowserUtility;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(features="src\\test\\resources\\Features", glue= {"StepDefinitions"},
plugin= {"pretty", "html:target/cucumber-html.report","json:target/cucumber-reports/cucumber.json","junit:target/cucumber-reports/cucumber.xml","com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"},
tags="@moretab" , monochrome=true
)
public class testRunner extends BrowserUtility
{
// @AfterClass
// public static void closeBrowser() throws Exception{
// if (driver == null) {
// return;
// }
// driver.quit();
// driver = null;
// }
}

View File

@ -0,0 +1,36 @@
package Utilities;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BrowserUtility{
public static WebDriver driver;
public static WebDriver OpenBrowser(WebDriver driver,String browserName,String url) throws InterruptedException
{
if(browserName.equalsIgnoreCase("Chrome"))
{
//C:\\Users\\hp\\eclipse-workspace\\com.testautomation.konectar\\Drivers\\chromedriver.exe
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"/Drivers/chromedriver/chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(url);
return driver;
}
else if(browserName.equalsIgnoreCase("firefox")) {
System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"/Drivers/geckodriver/geckodriver.exe");
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get(url);
return driver;
}
return null;
}
}

View File

@ -0,0 +1,22 @@
package Utilities;
import java.io.FileInputStream;
import java.util.Properties;
public class PropertiesFileReader {
public Properties getProperty() {
{
FileInputStream inputStream=null;
Properties properties = new Properties();
try {
properties.load(new FileInputStream("resources/browser-config.properties"));
}catch(Exception e) {
System.out.println("Exception:"+e);
}
return properties;
}
}
}

View File

@ -0,0 +1,84 @@
package manager;
import org.openqa.selenium.WebDriver;
import PageObjects.ContactsPage;
import PageObjects.HomePage;
import PageObjects.KOLProfilePage;
import PageObjects.MyLists;
import PageObjects.MyListsPage;
import PageObjects.NetworkMapsPage;
import PageObjects.OrganizationPage;
import PageObjects.ReportsPage;
import PageObjects.TrackPage;
import PageObjects.LoginPage;
import PageObjects.MorePage;
public class PageObjectManager
{
public WebDriver driver;
LoginPage loginPage;
HomePage homePage;
TrackPage trackTab;
NetworkMapsPage networmMap;
MyLists lists;
MyListsPage myListspage;
ReportsPage reports;
ContactsPage contactsPage;
KOLProfilePage kolProfilePage;
OrganizationPage organizationPage;
MorePage morePage;
public PageObjectManager(WebDriver driver)
{
this.driver = driver;
}
public LoginPage getLoginPage() {
return (loginPage==null) ? loginPage = new LoginPage(driver):loginPage;
}
public HomePage getHomePage() {
return (homePage==null) ? homePage = new HomePage(driver):homePage;
}
public TrackPage getTrackTab() {
return (trackTab==null) ? trackTab = new TrackPage(driver):trackTab;
}
public NetworkMapsPage getNetworkMapsTab()
{
return (networmMap==null) ? networmMap = new NetworkMapsPage(driver):networmMap;
}
public MyLists getMyLists()
{
return (lists==null) ? lists = new MyLists(driver):lists;
}
public ReportsPage getReports()
{
return (reports==null) ? reports = new ReportsPage(driver):reports;
}
public ContactsPage getContactsPage() {
return (contactsPage==null) ? contactsPage = new ContactsPage(driver):contactsPage;
}
public KOLProfilePage getKOLProfilePage() {
return (kolProfilePage==null) ? kolProfilePage = new KOLProfilePage(driver):kolProfilePage;
}
public OrganizationPage getOrganizationPage() {
return (organizationPage==null) ? organizationPage = new OrganizationPage(driver):organizationPage;
}
public MorePage getMorePage() {
return (morePage==null) ? morePage = new MorePage(driver):morePage;
}
public MyListsPage getMyListsPage()
{
return (myListspage==null) ? myListspage = new MyListsPage(driver):myListspage;
}
}

View File

@ -0,0 +1,124 @@
Feature: Contacts tab functionality
@KOLFilter
Scenario Outline: Verify user can apply country filter to KOL
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user clicks on country filter in the contacts tab
Then user should display with filtered HCP's based country filter
Examples:
|username|password|
|hillmgr|Ss@hills2|
@AddKOL
Scenario Outline: Verify error message display for mandatory fields in Add new KOL
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user click on New icon to add KOL
And user click on Save button without adding details in add KOL page
Then Required error message shown to user for mandatory fields
When user clicks on Cancel button in add KOL page
Then user should be taken to contacts page
Examples:
|username|password|
|hillmgr|Ss@hills2|
@File
Scenario Outline: Verify user can download KOL PDF profile
Given user login to hills application with <username> and <password>
When user clicks contact tab
And select a KOL by clicking on checkbox
And user click on PDF to download details of KOL
Then PDF should get download
Examples:
|username|password|
|hillmgr|Ss@hills2|
@ExcelFile
Scenario Outline: Verify user can download KOL full profile as a Excel
Given user login to hills application with <username> and <password>
When user clicks contact tab
And select a KOL by clicking on checkbox
And user click on Excel to download details of KOL
And user selects Full profile checkbox
And user click on Export button
Then KOL full profile Excel downloaded
Examples:
|username|password|
|hillmgr|Ss@hills2|
@Assign
Scenario Outline: Verify user can unassign and assign Hill Manager to KOL
Given user login to hills application with <username> and <password>
When user clicks contact tab
And select a KOL by clicking on checkbox
And user click on Assign link
And user click on Unassign button
And user selects All Contacts in Assigned dropdown
And select a KOL by clicking on checkbox
And user click on Assign link
And user select Hill Manager to assign
And user click on Assign button
Then KOL should get assign to Hill Manager
Examples:
|username|password|
|hillmgr|Ss@hills2|
@Email
Scenario Outline: Verify user can send KOL profile in a Mail
Given user login to hills application with <username> and <password>
When user clicks contact tab
And select a KOL by clicking on checkbox
And user click on Email link
And user enter to email<email>
And user click on send button
Then KOL profile emailed successfully
Examples:
|username|password|email|
|hillmgr|Ss@hills2|test@test.com|
@List
Scenario Outline: Verify user can create KOL list and delete list
Given user login to hills application with <username> and <password>
When user clicks contact tab
And select a KOL by clicking on checkbox
And user click on List icon link
And user add new category and list name
And user click on Save button
And user navigates to MyLists tab
And user click on Manage List tab
And user select category to be deleted
And user delete the list name
And user delete the category created
Examples:
|username|password|email|
|hillmgr|Ss@hills2|test@test.com|
#Scenario Outline: Verify user can assign new KOL
#Given user login to hills application with <username> and <password>
#When user clicks contact tab
#And user click on New icon to assign KOL
#And user add KOL <firstname> and <lastname> and <email>
#And user select <salutation> and <country> and <language>
#And user click on save button
#Then user should get success message
#Examples:
#|username|password|firstname|lastname|email |salutation|country|language|
#|hillmgr|Ss@hills1|Andrew |Tylor |andrew@gmail.com| | | |

View File

@ -0,0 +1,9 @@
Feature: Login functionality
@LoginTest
Scenario Outline: User Login to hills Application
Given user login to hills application with <username> and <password>
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,32 @@
Feature: Hometab clicks verification
Scenario Outline: User verify showmore page in summary section
Given user login to hills application with <username> and <password>
Given user is on home tab
When user clicks on showmore link in summary section
Then User should land on contact listing page
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify showmore page in recent activity section
Given user login to hills application with <username> and <password>
Given user is on home tab
When user clicks on showmore link in recent activity section
Then User should land on Recent activity main page
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify view all news page in home page
Given user login to hills application with <username> and <password>
Given user is on home tab
When user clicks on view all news button in home page
Then User should land on media main page
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,93 @@
Feature: KOL Profile functionality verification
@ProfileActions
Scenario Outline: Verify the user can perform different actions within profile summary
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user add user notes<usernote>
And user click on add training and close the pop-up
And user click on add Honors and Rewards and close the pop-up
#Provide complete KOL Name in example section. Partial KOL Name search may fail the script
Examples:
|username|password|KOLName |usernote|
|hillmgr|Ss@hills2|Andry M Jackson|Testing|
@ProfileDetails
Scenario Outline: Verify the user can perform different actions within details tab
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user navigated to details tab
And user click on Add location and close the popup
And user click on Add phone and close the popup
And user click on Add staff and close the popup
And user click on Add email and close the popup
And user click on Add assign and close the popup
#Provide complete KOL Name in example section. Partial KOL Name search may fail the script
Examples:
|username|password|KOLName |
|hillmgr|Ss@hills2|Andry M Jackson|
@Track
Scenario Outline: Verify the user can perform different actions within track tab
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user click on Track tab
And user export interactions
And user click on Report tab within the interactions tab
And user click on Chart tab within the interactions tab
And user click on Calendar tab within the interactions tab
And user click on payments tab within track
And user click on Add payment and close the popup
And user click on Add contract and close the popup
Examples:
|username|password|KOLName |
|hillmgr|Ss@hills2|Andry M Jackson|
@Affiliation
Scenario Outline: Verify the user can perform different actions within affiliation tab
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user click on Affiliation tab
And user click on Add affiliation and close the popup
And user export all Affiliations in Excel
And user click on Reports org tab
And user click on Reports eng tab
Examples:
|username|password|KOLName |
|hillmgr|Ss@hills2|Andry M Jackson|
@Events
Scenario Outline: Verify the user can perform different actions within affiliation tab
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user click on Events tab
And user click on Add New Event and close the popup
And user export all Events in Excel
And user click on Events Charts tab
Examples:
|username|password|KOLName |
|hillmgr|Ss@hills2|Andry M Jackson|
@Publications
Scenario Outline: Verify the user can perform different actions within affiliation tab
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user click on Publications tab
And user click on Add New Publication and close the popup
And user export all Publications in Excel
And user click on Pubs Charts tab
Examples:
|username|password|KOLName |
|hillmgr|Ss@hills2|Andry M Jackson|

View File

@ -0,0 +1,93 @@
Feature: More tab features verification
@moretab
Scenario Outline: Verify user can perofrm different actions in Profile request
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Profile request link
And user exports pending approvals in Excel
And user exports all profile request in Excel
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: Verify user can perofrm different actions in Org Profile request
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Org profile request link
And user exports pending approvals in Excel
And user exports all organization request in Excel
Examples:
|username|password|
|hillmgr|Ss@hills2|
@Recent
Scenario Outline: Verify user can perofrm different actions in Recent Activity
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Recent Activity link
And user enter <KOLName> and submit
And user filter category<category>
Then only filtered KOL activities should be shown
Examples:
|username|password|KOLName |category|
|hillmgr|Ss@hills2|Adam Critsin |Interactions|
@Notify
Scenario Outline: Verify user can perofrm different actions in Notifications
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Notifications link
And user open and Close Add new notification form
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: Verify user can perofrm different actions in Media and Social Media
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Media link
And user filter media based on from date <date>
When user click on More tab
And user click on Social Media link
Examples:
|username|password|date |
|hillmgr|Ss@hills2|12/12/2020|
Scenario Outline: Verify user can perofrm different actions in Upcoming Events
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Up coming events link
And user click on event snapshot
And user click on calendar tab and filter events by day
And user click on Map tab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: Verify user can perofrm different actions in Mail Box
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on MailBox link
And user click on different Mail options
And user click on different Setting options
And user click on different Miscellaneous options
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: Verify user can perofrm different actions in Documents
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Document link
And user sort document <sort> and click on folder
And user open and close Upload doc window
Examples:
|username|password|KOLName |sort |
|hillmgr|Ss@hills2|Adam Critsin |Date (Latest)|

View File

@ -0,0 +1,52 @@
Feature: MyListstab clicks verification
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on mylists tab
Then default should show public lists tab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on export excel icon
Then selected kols details should download
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on export pdf icon
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on manage list subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on manage list subtab
Then user clicks on add category<category>
Examples:
|username|password|category|
|hillmgr|Ss@hills2|Test Category3|

View File

@ -0,0 +1,86 @@
Feature: NetworkMapstab clicks verification
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps tab
When network map page should load
Then User should show network map connections
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps tab
When user clicks on refine by global region section
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps tab
When user clicks on Affiliations Events Pubs checkboxs
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps tab
When user clicks on Hide Sidebar Show Sidebar
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps2 tab
When network map page should load
Examples:
|username|password|
|hillmgr|Ss@hills2|
@geonm
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps2 tab
When geo network map page should load
Then User should show geo network map connections
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on geo network maps tab
When user clicks on geo refine by global region section
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on geo network maps tab
When user clicks on geo Affiliations Events Pubs checkboxs
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on geo network maps tab
When user clicks on geo Hide Sidebar Show Sidebar
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,142 @@
Feature: Organization tab functionality verification
@Org123
Scenario Outline: Verify user can perform multiple actions in Organization tab
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user clicks on country filter in the Organization tab
Then user should display with filtered KOLs based country filter
Examples:
|username|password|
|hillmgr|Ss@hills2|
@AddOrg
Scenario Outline: Verify user can perform multiple actions in Organization tab
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user click on New link to add organization
And user click on Save button without adding organization details
And user click on Cancel button in new organization form
Examples:
|username|password|
|hillmgr|Ss@hills2|
@AssignOrg
Scenario Outline: Verify user can assign and unassign Organization to KOL
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user select a Organization by clicking checkbox
And user click on Assign link
And user select Hill Manager to assign
And user click on Assign button
And user selects My Organizations in Assigned dropdown
And user select a Organization by clicking checkbox
And user click on Assign link
And user click on Unassign button
Then Organization should get unassign from Hill Manager
#Provide complete organization name in example section organization
Examples:
|username|password|orgnization|
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@exportexcelorg
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user select a Organization by clicking checkbox
And user click on Excel to export organization
#Provide complete organization name in example section organization
Examples:
|username|password|orgnization|
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@AddOrg
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user click on New link to add organization
And user click on Save button without adding organization details
And user click on Cancel button in new organization form
Then user should be taken to organization home tab
Examples:
|username|password|
|hillmgr|Ss@hills2|
@KeyPeople
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user navigate within organization
And user click on Key People tab
And user open and close Add Key People form
And user click on Track tab
And user click on Report tab within the interactions tab
And user click on Chart tab within the interactions tab
And user click on Calendar tab within the interactions tab
And user click on Add contract and close the popup
And user click on Affiliate Org tab
And user click on Add affiliate and close the popup
And user click on Org Network tab
And user click on KTL's tab within Org network tab
And user click on KeyPeople tab within Org network tab
Examples:
|username|password|orgnization|
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@OrgTrack
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user navigate within organization
And user click on Track tab
And user click on Report tab within the interactions tab
And user click on Chart tab within the interactions tab
And user click on Calendar tab within the interactions tab
And user click on Add contract and close the popup
Examples:
|username|password|orgnization |
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@AffiliateOrg
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user navigate within organization
And user click on Affiliate Org tab
And user click on Add affiliate and close the popup
Examples:
|username|password|orgnization |
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@OrgNetwork
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user navigate within organization
And user click on Org Network tab
And user click on KTL's tab within Org network tab
And user click on KeyPeople tab within Org network tab
Examples:
|username|password|orgnization |
|hillmgr|Ss@hills2|4 Paws Veterinary Care|

View File

@ -0,0 +1,98 @@
Feature: Reportstab clicks verification
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on reports tab
Then default interaction listing page shoud show
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on export excel icon2
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on interaction type dropdown
And user clicks on monthly by interaction type
And user clicks on monthly by business segment
And user clicks on monthly by category
And user clicks on monthly by contact type
And user clicks on monthly by topic
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on activity subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on profile score subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on events subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on affiliations subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on publications subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on segmentation subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on budget tracker subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,103 @@
Feature: Tracktab clicks verification
Scenario Outline: User verify Interaction listing page
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on export excel icon in interaction grid
Then User should download interactions details
Examples:
|username|password|
|hillmgr|Ss@hills2|
@trackone
Scenario Outline: User verify report subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on report sutab
Then User should show interaction report
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify chart subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on chart sutab
Then User should show interactions chart
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify calendar subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on calendar sutab
Then User should show interactions in calendar
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify payments tab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on payments tab
Then User should show payment details
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify add payments feature
Given user login to hills application with <username> and <password>
Given user is on payments tab
When user clicks on add payment button
Then user should show add payment form
Examples:
|username|password|
|hillmgr|Ss@hills2|
@conTest
Scenario Outline: User verify contracts tab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on contracts tab
When user clicks on add contracts button
Then User should show contracts details
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify add contracts feature
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on add contracts button
Then user should show add contracts form
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify plan subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on plan subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify plan subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on objective export excel
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify plan subtab
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on plans subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,60 @@
Feature: Contacts tab functionality
@Contacts
Scenario Outline: Verify user can apply country filter to KOL
Given user login to hills application with <username> and <password>
When user clicks contact tab
#And user clicks on country filter in the contacts tab
#Then user should display with filtered HCP's based country filter
#When user clicks contact tab
And user click on New icon to add KOL
And user click on Save button without adding details in add KOL page
Then Required error message shown to user for mandatory fields
When user clicks on Cancel button in add KOL page
Then user should be taken to contacts page
And select a KOL by clicking on checkbox
And user click on PDF to download details of KOL
Then PDF should get download
#And select a KOL by clicking on checkbox
And user click on Excel to download details of KOL
And user selects Full profile checkbox
And user click on Export button
Then KOL full profile Excel downloaded
#And select a KOL by clicking on checkbox
And user click on Assign link
And user click on Unassign button
And user selects All Contacts in Assigned dropdown
And select a KOL by clicking on checkbox
And user click on Assign link
And user select Hill Manager to assign
And user click on Assign button
Then KOL should get assign to Hill Manager
#And select a KOL by clicking on checkbox
And user click on Email link
And user enter to email<email>
And user click on send button
Then KOL profile emailed successfully
#And select a KOL by clicking on checkbox
And user click on List icon link
And user add new category and list name
And user click on Save button
And user navigates to MyLists tab
And user click on Manage List tab
And user select category to be deleted
And user delete the list name
And user delete the category created
When user clicks contact tab
And user clicks on country filter in the contacts tab
Then user should display with filtered HCP's based country filter
Examples:
|username|password|email|
|hillmgr|Ss@hills2|test@test.com|

View File

@ -0,0 +1,9 @@
Feature: Login functionality
@LoginTest
Scenario Outline: User Login to hills Application
Given user login to hills application with <username> and <password>
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,20 @@
Feature: Hometab clicks verification
Scenario Outline: User verify showmore page in summary section
Given user login to hills application with <username> and <password>
Given user is on home tab
When user clicks on showmore link in summary section
Then User should land on contact listing page
When user clicks on showmore link in recent activity section
When user clicks on view all news button in home page
Then User should land on media main page
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,44 @@
Feature: KOL Profile functionality verification
@WithinProfile
Scenario Outline: Verify the user can go to KOL profile from contacts page
Given user login to hills application with <username> and <password>
When user clicks contact tab
And user search and click on <KOLName>
And user add user notes<usernote>
And user click on add training and close the pop-up
And user click on add Honors and Rewards and close the pop-up
And user navigated to details tab
And user click on Add location and close the popup
And user click on Add phone and close the popup
And user click on Add staff and close the popup
And user click on Add email and close the popup
And user click on Add assign and close the popup
And user click on Track tab
And user export interactions
And user click on Report tab within the interactions tab
And user click on Chart tab within the interactions tab
And user click on Calendar tab within the interactions tab
And user click on payments tab within track
And user click on Add payment and close the popup
And user click on Add contract and close the popup
And user click on Affiliation tab
And user click on Add affiliation and close the popup
And user export all Affiliations in Excel
And user click on Reports org tab
And user click on Reports eng tab
And user click on Events tab
#And user click on Add New Event and close the popup
And user export all Events in Excel
And user click on Events Charts tab
And user click on Publications tab
And user click on Add New Publication and close the popup
And user export all Publications in Excel
And user click on Pubs Charts tab
#Provide complete KOL Name in example section. Partial KOL Name search may fail the script
Examples:
|username|password|KOLName|usernote|
|hillmgr|Ss@hills2|Andry M Jackson|Testing|

View File

@ -0,0 +1,44 @@
Feature: More tab features verification
@more
Scenario Outline: Verify user can perofrm different actions in Profile request
Given user login to hills application with <username> and <password>
When user click on More tab
And user click on Profile request link
And user exports pending approvals in Excel
And user exports all profile request in Excel
When user click on More tab
And user click on Org profile request link
And user exports pending approvals in Excel
And user exports all organization request in Excel
When user click on More tab
And user click on Recent Activity link
And user enter <KOLName> and submit
And user filter category<category>
Then only filtered KOL activities should be shown
When user click on More tab
And user click on Notifications link
And user open and Close Add new notification form
When user click on More tab
And user click on Media link
And user filter media based on from date <date>
When user click on More tab
And user click on Social Media link
When user click on More tab
And user click on Up coming events link
And user click on event snapshot
And user click on calendar tab and filter events by day
And user click on Map tab
When user click on More tab
And user click on MailBox link
And user click on different Mail options
And user click on different Setting options
And user click on different Miscellaneous options
When user click on More tab
And user click on Document link
And user sort document <sort> and click on folder
And user open and close Upload doc window
Examples:
|username|password|KOLName |category |date |sort|
|hillmgr|Ss@hills2|Adam Critsin |Interactions|12/12/2020|Date (Latest)|

View File

@ -0,0 +1,24 @@
Feature: MyListstab clicks verification
Scenario Outline: User verify MyLists page
Given user login to hills application with <username> and <password>
Given user is on mylists tab
When user clicks on mylists tab
Then default should show public lists tab
When user clicks on export excel icon
Then selected kols details should download
When user clicks on export pdf icon
When user clicks on manage list subtab
Then user clicks on add category
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,36 @@
Feature: NetworkMapstab clicks verification
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps tab
When network map page should load
Then User should show network map connections
When user clicks on refine by global region section
When user clicks on Affiliations Events Pubs checkboxs
When user clicks on Hide Sidebar Show Sidebar
Examples:
|username|password|
|hillmgr|Ss@hills2|
Scenario Outline: User verify Network Maps page
Given user login to hills application with <username> and <password>
Given user clicks on network maps2 tab
When network map page should load
When geo network map page should load
Then User should show geo network map connections
When user clicks on geo refine by global region section
When user clicks on geo Affiliations Events Pubs checkboxs
When user clicks on geo Hide Sidebar Show Sidebar
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,56 @@
Feature: Organization tab functionality verification
@Org
Scenario Outline: Verify user can perform multiple actions in Organization tab
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user clicks on country filter in the Organization tab
Then user should display with filtered KOLs based country filter
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user select a Organization by clicking checkbox
And user click on Assign link
And user select Hill Manager to assign
And user click on Assign button
And user selects My Organizations in Assigned dropdown
And user select a Organization by clicking checkbox
And user click on Assign link
And user click on Unassign button
Then Organization should get unassign from Hill Manager
And user click on New link to add organization
And user click on Save button without adding organization details
And user click on Cancel button in new organization form
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
Then user should be taken to organization home tab
And user select a Organization by clicking checkbox
And user click on Excel to export organization
Examples:
|username|password|orgnization|
|hillmgr|Ss@hills2|4 Paws Veterinary Care|
@WithinOrg
Scenario Outline: Verify user can download organization in excel format
Given user login to hills application with <username> and <password>
And user click on Organization tab
And user selects All Organizations in Assigned dropdown
And user search an Organization name<orgnization>
And user navigate within organization
And user click on Key People tab
And user open and close Add Key People form
And user click on Track tab
And user click on Report tab within the interactions tab
And user click on Chart tab within the interactions tab
And user click on Calendar tab within the interactions tab
And user click on Add contract and close the popup
And user click on Affiliate Org tab
And user click on Add affiliate and close the popup
And user click on Org Network tab
And user click on KTL's tab within Org network tab
And user click on KeyPeople tab within Org network tab
Examples:
|username|password|orgnization|
|hillmgr|Ss@hills2|4 Paws Veterinary Care|

View File

@ -0,0 +1,40 @@
Feature: Reportstab clicks verification
Scenario Outline: User verify Reports tab
Given user login to hills application with <username> and <password>
Given user is on reports tab
When user clicks on reports tab
Then default interaction listing page shoud show
When user clicks on export excel icon2
When user clicks on interaction type dropdown
And user clicks on monthly by interaction type
And user clicks on monthly by business segment
And user clicks on monthly by category
And user clicks on monthly by contact type
And user clicks on monthly by topic
When user clicks on activity subtab
When user clicks on profile score subtab
When user clicks on events subtab
When user clicks on affiliations subtab
When user clicks on publications subtab
When user clicks on segmentation subtab
When user clicks on budget tracker subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,48 @@
Feature: Tracktab clicks verification
Scenario Outline: User verify Interaction listing page
Given user login to hills application with <username> and <password>
Given user is on Track tab
When user clicks on export excel icon in interaction grid
Then User should download interactions details
When user clicks on report sutab
Then User should show interaction report
When user clicks on chart sutab
Then User should show interactions chart
When user clicks on calendar sutab
Then User should show interactions in calendar
When user clicks on payments tab
Then User should show payment details
Given user is on payments tab
When user clicks on add payment button
Then user should show add payment form
Given user is on Track tab
When user clicks on contracts tab
When user clicks on add contracts button
Then User should show contracts details
When user clicks on add contracts button
Then user should show add contracts form
When user clicks on plan subtab
When user clicks on objective export excel
When user clicks on plans subtab
Examples:
|username|password|
|hillmgr|Ss@hills2|

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<extentreports>
<configuration>
<!-- report theme -->
<!-- standard, dark -->
<theme>standard</theme>
<!-- document encoding -->
<!-- defaults to UTF-8 -->
<encoding>UTF-8</encoding>
<!-- protocol for script and stylesheets -->
<!-- defaults to https -->
<protocol>https</protocol>
<!-- title of the document -->
<documentTitle>Extent</documentTitle>
<!-- report name - displayed at top-nav -->
<reportName>Automation Report</reportName>
<!-- location of charts in the test view -->
<!-- top, bottom -->
<testViewChartLocation>bottom</testViewChartLocation>
<!-- custom javascript -->
<scripts>
<![CDATA[
$(document).ready(function() {
});
]]>
</scripts>
<!-- custom styles -->
<styles>
<![CDATA[
]]>
</styles>
</configuration>
</extentreports>

View File

@ -0,0 +1,3 @@
extent.reporter.html.start=true
extent.reporter.html.config=src/test/resources/extent-config.xml
extent.reporter.html.out=target/cucumber-reports/advanced-reports/extentreports/extent.html

2
Hills_With_Cucumber/target/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/classes/
/test-classes/

View File

@ -0,0 +1,257 @@
var CucumberHTML = {};
CucumberHTML.DOMFormatter = function(rootNode) {
var currentUri;
var currentFeature;
var currentElement;
var currentSteps;
var currentStepIndex;
var currentStep;
var $templates = $(CucumberHTML.templates);
this.uri = function(uri) {
currentUri = uri;
};
this.feature = function(feature) {
currentFeature = blockElement(rootNode, feature, 'feature');
};
this.background = function(background) {
currentElement = featureElement(background, 'background');
currentStepIndex = 1;
};
this.scenario = function(scenario) {
currentElement = featureElement(scenario, 'scenario');
currentStepIndex = 1;
};
this.scenarioOutline = function(scenarioOutline) {
currentElement = featureElement(scenarioOutline, 'scenario_outline');
currentStepIndex = 1;
};
this.step = function(step) {
var stepElement = $('.step', $templates).clone();
stepElement.appendTo(currentSteps);
populate(stepElement, step, 'step');
if (step.doc_string) {
docString = $('.doc_string', $templates).clone();
docString.appendTo(stepElement);
// TODO: use a syntax highlighter based on the content_type
docString.text(step.doc_string.value);
}
if (step.rows) {
dataTable = $('.data_table', $templates).clone();
dataTable.appendTo(stepElement);
var tBody = dataTable.find('tbody');
$.each(step.rows, function(index, row) {
var tr = $('<tr></tr>').appendTo(tBody);
$.each(row.cells, function(index, cell) {
var td = $('<td>' + cell + '</td>').appendTo(tBody);
});
});
}
};
this.examples = function(examples) {
var examplesElement = blockElement(currentElement.children('details'), examples, 'examples');
var examplesTable = $('.examples_table', $templates).clone();
examplesTable.appendTo(examplesElement.children('details'));
$.each(examples.rows, function(index, row) {
var parent = index == 0 ? examplesTable.find('thead') : examplesTable.find('tbody');
var tr = $('<tr></tr>').appendTo(parent);
$.each(row.cells, function(index, cell) {
var td = $('<td>' + cell + '</td>').appendTo(tr);
});
});
};
this.match = function(match) {
currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')');
currentStepIndex++;
};
this.result = function(result) {
currentStep.addClass(result.status);
if (result.error_message != '') {
populateStepError(currentStep, result.error_message);
}
currentElement.addClass(result.status);
var isLastStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')').length == 0;
if (isLastStep) {
if (currentSteps.find('.failed').length == 0) {
// No failed steps. Collapse it.
currentElement.find('details').prop('open', false);
} else {
currentElement.find('details').attr('open', 'open');
}
}
};
this.embedding = function(mimeType, data, name) {
var nameHtml;
if (!name) {
nameHtml = "";
} else {
nameHtml = "<h4>" + name + "</h4>";
}
if (currentStepIndex == 1) {
this.dummyStep();
}
if (mimeType.match(/^image\//))
{
currentStep.append(nameHtml + '<img src="' + data + '">');
}
else if (mimeType.match(/^video\//))
{
currentStep.append(nameHtml + '<video src="' + data + '" type="' + mimeType + '" autobuffer controls>Your browser doesn\'t support video.</video>');
}
else if (mimeType.match(/^text\//))
{
this.write(nameHtml + data);
}
};
this.write = function(text) {
if (currentStepIndex == 1) {
this.dummyStep();
}
currentStep.append('<pre class="embedded-text">' + text + '</pre>');
};
this.before = function(before) {
this.handleHookResult(before);
};
this.after = function(after) {
this.handleHookResult(after);
};
this.beforestep = function(beforestep) {
this.handleHookResult(beforestep);
};
this.afterstep = function(afterstep) {
this.handleHookResult(afterstep);
};
this.handleHookResult = function(hook) {
if (hook.status != 'passed' && hook.error_message != '') {
this.dummyStep();
currentStep.addClass(hook.status);
currentElement.addClass(hook.status);
populateStepError(currentStep, hook.error_message);
}
};
this.dummyStep = function() {
var stepElement = $('.step', $templates).clone();
stepElement.appendTo(currentSteps);
populate(stepElement, {keyword: '', name: ''}, 'step');
currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')');
currentStepIndex++;
};
function featureElement(statement, itemtype) {
var e = blockElement(currentFeature.children('details'), statement, itemtype);
currentSteps = $('.steps', $templates).clone();
currentSteps.appendTo(e.children('details'));
return e;
}
function blockElement(parent, statement, itemtype) {
var e = $('.blockelement', $templates).clone();
e.appendTo(parent);
return populate(e, statement, itemtype);
}
function populate(e, statement, itemtype) {
populateTags(e, statement.tags);
populateComments(e, statement.comments);
e.find('.keyword').text(statement.keyword);
e.find('.name').text(statement.name);
e.find('.description').text(statement.description);
e.attr('itemtype', 'http://cukes.info/microformat/' + itemtype);
e.addClass(itemtype);
return e;
}
function populateComments(e, comments) {
if (comments !== undefined) {
var commentsNode = $('.comments', $templates).clone().prependTo(e.find('.header'));
$.each(comments, function(index, comment) {
var commentNode = $('.comment', $templates).clone().appendTo(commentsNode);
commentNode.text(comment.value);
});
}
}
function populateTags(e, tags) {
if (tags !== undefined) {
var tagsNode = $('.tags', $templates).clone().prependTo(e.find('.header'));
$.each(tags, function(index, tag) {
var tagNode = $('.tag', $templates).clone().appendTo(tagsNode);
tagNode.text(tag.name);
});
}
}
function populateStepError(e, error) {
if (error !== undefined) {
errorNode = $('.error', $templates).clone().appendTo(e);
errorNode.text(error);
}
}
};
CucumberHTML.templates = '<div>\
<section class="blockelement" itemscope>\
<details open>\
<summary class="header">\
<span class="keyword" itemprop="keyword">Keyword</span>: <span itemprop="name" class="name">This is the block name</span>\
</summary>\
<div itemprop="description" class="description">The description goes here</div>\
</details>\
</section>\
\
<ol class="steps"></ol>\
\
<ol>\
<li class="step"><div class="header"></div><span class="keyword" itemprop="keyword">Keyword</span><span class="name" itemprop="name">Name</span></li>\
</ol>\
\
<pre class="doc_string"></pre>\
\
<pre class="error"></pre>\
\
<table class="data_table">\
<tbody>\
</tbody>\
</table>\
\
<table class="examples_table">\
<thead></thead>\
<tbody></tbody>\
</table>\
\
<section class="embed">\
<img itemprop="screenshot" class="screenshot" />\
</section>\
<div class="tags"></div>\
<span class="tag"></span>\
<div class="comments"></div>\
<div class="comment"></div>\
<div>';
if (typeof module !== 'undefined') {
module.exports = CucumberHTML;
} else if (typeof define !== 'undefined') {
define([], function() { return CucumberHTML; });
}

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cucumber Features</title>
<link href="style.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="formatter.js"></script>
<script src="report.js"></script>
</head>
<body>
<div class="cucumber-report"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,171 @@
$(document).ready(function() {var formatter = new CucumberHTML.DOMFormatter($('.cucumber-report'));formatter.uri("file:src/test/resources/Features/HillsLogin.feature");
formatter.feature({
"name": "hills login functionality",
"description": "",
"keyword": "Feature"
});
formatter.scenarioOutline({
"name": "Verify valid login credentials",
"description": "",
"keyword": "Scenario Outline"
});
formatter.step({
"name": "user navigate to hills login page",
"keyword": "Given "
});
formatter.step({
"name": "user enters username\u003cusername\u003e and password\u003cpassword\u003e",
"keyword": "When "
});
formatter.step({
"name": "user clicks on sign in button",
"keyword": "And "
});
formatter.step({
"name": "user shold be login to hills application",
"keyword": "Then "
});
formatter.examples({
"name": "",
"description": "",
"keyword": "Examples",
"rows": [
{
"cells": [
"username",
"password"
]
},
{
"cells": [
"hillmgr",
"Ss@hills1"
]
}
]
});
formatter.scenario({
"name": "Verify valid login credentials",
"description": "",
"keyword": "Scenario Outline"
});
formatter.step({
"name": "user navigate to hills login page",
"keyword": "Given "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user enters usernamehillmgr and passwordSs@hills1",
"keyword": "When "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user clicks on sign in button",
"keyword": "And "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user shold be login to hills application",
"keyword": "Then "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.scenarioOutline({
"name": "Verify Invalid login credentials",
"description": "",
"keyword": "Scenario Outline",
"tags": [
{
"name": "@Invalidtest"
}
]
});
formatter.step({
"name": "user navigate to hills login page",
"keyword": "Given "
});
formatter.step({
"name": "user enters username\u003cusername\u003e and password\u003cpassword\u003e",
"keyword": "When "
});
formatter.step({
"name": "user clicks on sign in button",
"keyword": "And "
});
formatter.step({
"name": "user shold not be login to hills application",
"keyword": "Then "
});
formatter.examples({
"name": "",
"description": "",
"keyword": "Examples",
"rows": [
{
"cells": [
"username",
"password"
]
},
{
"cells": [
"hillmgr",
"RR@his1"
]
}
]
});
formatter.scenario({
"name": "Verify Invalid login credentials",
"description": "",
"keyword": "Scenario Outline",
"tags": [
{
"name": "@Invalidtest"
}
]
});
formatter.step({
"name": "user navigate to hills login page",
"keyword": "Given "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user enters usernamehillmgr and passwordRR@his1",
"keyword": "When "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user clicks on sign in button",
"keyword": "And "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
formatter.step({
"name": "user shold not be login to hills application",
"keyword": "Then "
});
formatter.match({});
formatter.result({
"status": "undefined"
});
});

View File

@ -0,0 +1,97 @@
.cucumber-report .body {
font-family: Helvetica,Arial,sans-serif;
}
.cucumber-report .keyword {
font-weight: bold;
}
.cucumber-report .description {
font-style: italic;
margin-left: 20px;
white-space: pre;
}
.cucumber-report details > section {
margin-left: 20px;
}
.cucumber-report ol.steps {
list-style-type: none;
margin-top: 0;
margin-bottom: 0;
}
.cucumber-report .step .embedded-text {
background: #dddddd;
}
.cucumber-report .doc_string {
margin: 0 0 0 20px;
}
.cucumber-report table {
border-collapse: collapse;
border: 1px;
border-style: solid;
}
.cucumber-report td, .cucumber-report th {
border: 1px;
border-style: solid;
padding-left: 4px;
padding-right: 4px;
}
.cucumber-report table {
margin-left: 20px;
}
.cucumber-report thead {
background-color: #C0C0C0;
}
.cucumber-report .passed {
background-color: #C5D88A;
}
.cucumber-report .undefined, .cucumber-report .pending {
background-color: #EAEC2D;
}
.cucumber-report .skipped {
background-color: #2DEAEC;
}
.cucumber-report .failed {
background-color: #D88A8A;
}
.cucumber-report .tags {
display: inline;
}
.cucumber-report .tag {
margin-right: 0.25em;
color: #246ac1;
}
.cucumber-report .comments {
display: inline;
}
.cucumber-report .comment {
margin: 0;
padding: 0;
}
.cucumber-report .error {
margin: .2em .75em;
padding: .2em;
border: 1px solid #900;
background-color: #EDBBBB;
}
#cucumber-templates {
display: none;
}

View File

@ -0,0 +1,112 @@
[
{
"line": 1,
"elements": [
{
"start_timestamp": "2021-06-21T12:31:58.682Z",
"line": 11,
"name": "Verify valid login credentials",
"description": "",
"id": "hills-login-functionality;verify-valid-login-credentials;;2",
"type": "scenario",
"keyword": "Scenario Outline",
"steps": [
{
"result": {
"status": "undefined"
},
"line": 4,
"name": "user navigate to hills login page",
"match": {},
"keyword": "Given "
},
{
"result": {
"status": "undefined"
},
"line": 5,
"name": "user enters usernamehillmgr and passwordSs@hills1",
"match": {},
"keyword": "When "
},
{
"result": {
"status": "undefined"
},
"line": 6,
"name": "user clicks on sign in button",
"match": {},
"keyword": "And "
},
{
"result": {
"status": "undefined"
},
"line": 7,
"name": "user shold be login to hills application",
"match": {},
"keyword": "Then "
}
]
},
{
"start_timestamp": "2021-06-21T12:31:58.803Z",
"line": 22,
"name": "Verify Invalid login credentials",
"description": "",
"id": "hills-login-functionality;verify-invalid-login-credentials;;2",
"type": "scenario",
"keyword": "Scenario Outline",
"steps": [
{
"result": {
"status": "undefined"
},
"line": 15,
"name": "user navigate to hills login page",
"match": {},
"keyword": "Given "
},
{
"result": {
"status": "undefined"
},
"line": 16,
"name": "user enters usernamehillmgr and passwordRR@his1",
"match": {},
"keyword": "When "
},
{
"result": {
"status": "undefined"
},
"line": 17,
"name": "user clicks on sign in button",
"match": {},
"keyword": "And "
},
{
"result": {
"status": "undefined"
},
"line": 18,
"name": "user shold not be login to hills application",
"match": {},
"keyword": "Then "
}
],
"tags": [
{
"name": "@Invalidtest"
}
]
}
],
"name": "hills login functionality",
"description": "",
"id": "hills-login-functionality",
"keyword": "Feature",
"uri": "file:src/test/resources/Features/HillsLogin.feature",
"tags": []
}
]

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<testsuite failures="0" name="cucumber.runtime.formatter.JUnitFormatter" skipped="2" tests="2" time="0.131554">
<testcase classname="hills login functionality" name="Verify valid login credentials" time="0.100429">
<skipped><![CDATA[Given user navigate to hills login page.....................................undefined
When user enters usernamehillmgr and passwordSs@hills1......................undefined
And user clicks on sign in button...........................................undefined
Then user shold be login to hills application...............................undefined
]]></skipped>
</testcase>
<testcase classname="hills login functionality" name="Verify Invalid login credentials" time="0.031125">
<skipped><![CDATA[Given user navigate to hills login page.....................................undefined
When user enters usernamehillmgr and passwordRR@his1........................undefined
And user clicks on sign in button...........................................undefined
Then user shold not be login to hills application...........................undefined
]]></skipped>
</testcase>
</testsuite>

View File

@ -0,0 +1,257 @@
var CucumberHTML = {};
CucumberHTML.DOMFormatter = function(rootNode) {
var currentUri;
var currentFeature;
var currentElement;
var currentSteps;
var currentStepIndex;
var currentStep;
var $templates = $(CucumberHTML.templates);
this.uri = function(uri) {
currentUri = uri;
};
this.feature = function(feature) {
currentFeature = blockElement(rootNode, feature, 'feature');
};
this.background = function(background) {
currentElement = featureElement(background, 'background');
currentStepIndex = 1;
};
this.scenario = function(scenario) {
currentElement = featureElement(scenario, 'scenario');
currentStepIndex = 1;
};
this.scenarioOutline = function(scenarioOutline) {
currentElement = featureElement(scenarioOutline, 'scenario_outline');
currentStepIndex = 1;
};
this.step = function(step) {
var stepElement = $('.step', $templates).clone();
stepElement.appendTo(currentSteps);
populate(stepElement, step, 'step');
if (step.doc_string) {
docString = $('.doc_string', $templates).clone();
docString.appendTo(stepElement);
// TODO: use a syntax highlighter based on the content_type
docString.text(step.doc_string.value);
}
if (step.rows) {
dataTable = $('.data_table', $templates).clone();
dataTable.appendTo(stepElement);
var tBody = dataTable.find('tbody');
$.each(step.rows, function(index, row) {
var tr = $('<tr></tr>').appendTo(tBody);
$.each(row.cells, function(index, cell) {
var td = $('<td>' + cell + '</td>').appendTo(tBody);
});
});
}
};
this.examples = function(examples) {
var examplesElement = blockElement(currentElement.children('details'), examples, 'examples');
var examplesTable = $('.examples_table', $templates).clone();
examplesTable.appendTo(examplesElement.children('details'));
$.each(examples.rows, function(index, row) {
var parent = index == 0 ? examplesTable.find('thead') : examplesTable.find('tbody');
var tr = $('<tr></tr>').appendTo(parent);
$.each(row.cells, function(index, cell) {
var td = $('<td>' + cell + '</td>').appendTo(tr);
});
});
};
this.match = function(match) {
currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')');
currentStepIndex++;
};
this.result = function(result) {
currentStep.addClass(result.status);
if (result.error_message != '') {
populateStepError(currentStep, result.error_message);
}
currentElement.addClass(result.status);
var isLastStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')').length == 0;
if (isLastStep) {
if (currentSteps.find('.failed').length == 0) {
// No failed steps. Collapse it.
currentElement.find('details').prop('open', false);
} else {
currentElement.find('details').attr('open', 'open');
}
}
};
this.embedding = function(mimeType, data, name) {
var nameHtml;
if (!name) {
nameHtml = "";
} else {
nameHtml = "<h4>" + name + "</h4>";
}
if (currentStepIndex == 1) {
this.dummyStep();
}
if (mimeType.match(/^image\//))
{
currentStep.append(nameHtml + '<img src="' + data + '">');
}
else if (mimeType.match(/^video\//))
{
currentStep.append(nameHtml + '<video src="' + data + '" type="' + mimeType + '" autobuffer controls>Your browser doesn\'t support video.</video>');
}
else if (mimeType.match(/^text\//))
{
this.write(nameHtml + data);
}
};
this.write = function(text) {
if (currentStepIndex == 1) {
this.dummyStep();
}
currentStep.append('<pre class="embedded-text">' + text + '</pre>');
};
this.before = function(before) {
this.handleHookResult(before);
};
this.after = function(after) {
this.handleHookResult(after);
};
this.beforestep = function(beforestep) {
this.handleHookResult(beforestep);
};
this.afterstep = function(afterstep) {
this.handleHookResult(afterstep);
};
this.handleHookResult = function(hook) {
if (hook.status != 'passed' && hook.error_message != '') {
this.dummyStep();
currentStep.addClass(hook.status);
currentElement.addClass(hook.status);
populateStepError(currentStep, hook.error_message);
}
};
this.dummyStep = function() {
var stepElement = $('.step', $templates).clone();
stepElement.appendTo(currentSteps);
populate(stepElement, {keyword: '', name: ''}, 'step');
currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')');
currentStepIndex++;
};
function featureElement(statement, itemtype) {
var e = blockElement(currentFeature.children('details'), statement, itemtype);
currentSteps = $('.steps', $templates).clone();
currentSteps.appendTo(e.children('details'));
return e;
}
function blockElement(parent, statement, itemtype) {
var e = $('.blockelement', $templates).clone();
e.appendTo(parent);
return populate(e, statement, itemtype);
}
function populate(e, statement, itemtype) {
populateTags(e, statement.tags);
populateComments(e, statement.comments);
e.find('.keyword').text(statement.keyword);
e.find('.name').text(statement.name);
e.find('.description').text(statement.description);
e.attr('itemtype', 'http://cukes.info/microformat/' + itemtype);
e.addClass(itemtype);
return e;
}
function populateComments(e, comments) {
if (comments !== undefined) {
var commentsNode = $('.comments', $templates).clone().prependTo(e.find('.header'));
$.each(comments, function(index, comment) {
var commentNode = $('.comment', $templates).clone().appendTo(commentsNode);
commentNode.text(comment.value);
});
}
}
function populateTags(e, tags) {
if (tags !== undefined) {
var tagsNode = $('.tags', $templates).clone().prependTo(e.find('.header'));
$.each(tags, function(index, tag) {
var tagNode = $('.tag', $templates).clone().appendTo(tagsNode);
tagNode.text(tag.name);
});
}
}
function populateStepError(e, error) {
if (error !== undefined) {
errorNode = $('.error', $templates).clone().appendTo(e);
errorNode.text(error);
}
}
};
CucumberHTML.templates = '<div>\
<section class="blockelement" itemscope>\
<details open>\
<summary class="header">\
<span class="keyword" itemprop="keyword">Keyword</span>: <span itemprop="name" class="name">This is the block name</span>\
</summary>\
<div itemprop="description" class="description">The description goes here</div>\
</details>\
</section>\
\
<ol class="steps"></ol>\
\
<ol>\
<li class="step"><div class="header"></div><span class="keyword" itemprop="keyword">Keyword</span><span class="name" itemprop="name">Name</span></li>\
</ol>\
\
<pre class="doc_string"></pre>\
\
<pre class="error"></pre>\
\
<table class="data_table">\
<tbody>\
</tbody>\
</table>\
\
<table class="examples_table">\
<thead></thead>\
<tbody></tbody>\
</table>\
\
<section class="embed">\
<img itemprop="screenshot" class="screenshot" />\
</section>\
<div class="tags"></div>\
<span class="tag"></span>\
<div class="comments"></div>\
<div class="comment"></div>\
<div>';
if (typeof module !== 'undefined') {
module.exports = CucumberHTML;
} else if (typeof define !== 'undefined') {
define([], function() { return CucumberHTML; });
}

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cucumber Features</title>
<link href="style.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="formatter.js"></script>
<script src="report.js"></script>
</head>
<body>
<div class="cucumber-report"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,140 @@
$(document).ready(function() {var formatter = new CucumberHTML.DOMFormatter($('.cucumber-report'));formatter.uri("file:src/test/resources/Features/More.feature");
formatter.feature({
"name": "More tab features verification",
"description": "",
"keyword": "Feature"
});
formatter.scenarioOutline({
"name": "Verify user can perofrm different actions in Profile request",
"description": "",
"keyword": "Scenario Outline",
"tags": [
{
"name": "@moretab"
}
]
});
formatter.step({
"name": "user login to hills application with \u003cusername\u003e and \u003cpassword\u003e",
"keyword": "Given "
});
formatter.step({
"name": "user click on More tab",
"keyword": "When "
});
formatter.step({
"name": "user click on Profile request link",
"keyword": "And "
});
formatter.step({
"name": "user exports pending approvals in Excel",
"keyword": "And "
});
formatter.step({
"name": "user exports all profile request in Excel",
"keyword": "And "
});
formatter.examples({
"name": "",
"description": "",
"keyword": "Examples",
"rows": [
{
"cells": [
"username",
"password"
]
},
{
"cells": [
"hillmgr",
"Ss@hills2"
]
}
]
});
formatter.scenario({
"name": "Verify user can perofrm different actions in Profile request",
"description": "",
"keyword": "Scenario Outline",
"tags": [
{
"name": "@moretab"
}
]
});
formatter.step({
"name": "user login to hills application with hillmgr and Ss@hills2",
"keyword": "Given "
});
formatter.match({
"location": "HillsLoginSteps.user_login_to_hills_application_with_username_and_password(String,String)"
});
formatter.result({
"status": "passed"
});
formatter.step({
"name": "user click on More tab",
"keyword": "When "
});
formatter.match({
"location": "MoreSteps.userclickonMoretab()"
});
formatter.result({
"status": "passed"
});
formatter.step({
"name": "user click on Profile request link",
"keyword": "And "
});
formatter.match({
"location": "MoreSteps.userclickonProfilerequestlink()"
});
formatter.result({
"status": "passed"
});
formatter.step({
"name": "user exports pending approvals in Excel",
"keyword": "And "
});
formatter.match({
"location": "MoreSteps.userexportspendingapprovalsinExcel()"
});
formatter.result({
"status": "passed"
});
formatter.step({
"name": "user exports all profile request in Excel",
"keyword": "And "
});
formatter.match({
"location": "MoreSteps.userexportsallprofilerequestinExcel()"
});
formatter.result({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
formatter.after({
"status": "passed"
});
});

View File

@ -0,0 +1,97 @@
.cucumber-report .body {
font-family: Helvetica,Arial,sans-serif;
}
.cucumber-report .keyword {
font-weight: bold;
}
.cucumber-report .description {
font-style: italic;
margin-left: 20px;
white-space: pre;
}
.cucumber-report details > section {
margin-left: 20px;
}
.cucumber-report ol.steps {
list-style-type: none;
margin-top: 0;
margin-bottom: 0;
}
.cucumber-report .step .embedded-text {
background: #dddddd;
}
.cucumber-report .doc_string {
margin: 0 0 0 20px;
}
.cucumber-report table {
border-collapse: collapse;
border: 1px;
border-style: solid;
}
.cucumber-report td, .cucumber-report th {
border: 1px;
border-style: solid;
padding-left: 4px;
padding-right: 4px;
}
.cucumber-report table {
margin-left: 20px;
}
.cucumber-report thead {
background-color: #C0C0C0;
}
.cucumber-report .passed {
background-color: #C5D88A;
}
.cucumber-report .undefined, .cucumber-report .pending {
background-color: #EAEC2D;
}
.cucumber-report .skipped {
background-color: #2DEAEC;
}
.cucumber-report .failed {
background-color: #D88A8A;
}
.cucumber-report .tags {
display: inline;
}
.cucumber-report .tag {
margin-right: 0.25em;
color: #246ac1;
}
.cucumber-report .comments {
display: inline;
}
.cucumber-report .comment {
margin: 0;
padding: 0;
}
.cucumber-report .error {
margin: .2em .75em;
padding: .2em;
border: 1px solid #900;
background-color: #EDBBBB;
}
#cucumber-templates {
display: none;
}

View File

@ -0,0 +1,439 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<meta name='description' content='' />
<meta name='robots' content='noodp, noydir' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<meta id="timeStampFormat" name="timeStampFormat" content='MMM d, yyyy hh:mm:ss a'/>
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600' rel='stylesheet' type='text/css' />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<link href='https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/css/extent.css' type='text/css' rel='stylesheet' />
<title>Extent</title>
<style type='text/css'>
/* json-tree */
.jstBracket,.jstComma,.jstValue{white-space:pre-wrap}.jstValue{font-size:10px;font-weight:400;font-family:"Lucida Console",Monaco,monospace}.jstProperty{color:#666;word-wrap:break-word}.jstBool{color:#2525CC}.jstNum{color:#D036D0}.jstNull{color:gray}.jstStr{color:#2DB669}.jstFold:after{content:' -';cursor:pointer}.jstExpand{white-space:normal}.jstExpand:after{content:' +';cursor:pointer}.jstFolded{white-space:normal!important}.jstHiddenBlock{display:none}
</style>
<script type="text/javascript">
/*! json-tree - v0.2.2 - 2017-09-25, MIT LICENSE */
var JSONTree=function(){var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"},t=0,r=0;this.create=function(n,t){return r+=1,N(u(n,0,!1),{class:"jstValue"})};var e=function(t){return t.replace(/[&<>'"]/g,function(t){return n[t]})},s=function(){return r+"_"+t++},u=function(n,t,r){if(null===n)return f(r?t:0);switch(typeof n){case"boolean":return l(n,r?t:0);case"number":return i(n,r?t:0);case"string":return o(n,r?t:0);default:return n instanceof Array?a(n,t,r):c(n,t,r)}},c=function(n,t,r){var e=s(),u=Object.keys(n).map(function(r){return j(r,n[r],t+1,!0)}).join(m()),c=[g("{",r?t:0,e),N(u,{id:e}),p("}",t)].join("\n");return N(c,{})},a=function(n,t,r){var e=s(),c=n.map(function(n){return u(n,t+1,!0)}).join(m());return[g("[",r?t:0,e),N(c,{id:e}),p("]",t)].join("\n")},o=function(n,t){var r=e(JSON.stringify(n));return N(v(r,t),{class:"jstStr"})},i=function(n,t){return N(v(n,t),{class:"jstNum"})},l=function(n,t){return N(v(n,t),{class:"jstBool"})},f=function(n){return N(v("null",n),{class:"jstNull"})},j=function(n,t,r){var s=v(e(JSON.stringify(n))+": ",r),c=N(u(t,r,!1),{});return N(s+c,{class:"jstProperty"})},m=function(){return N(",\n",{class:"jstComma"})},N=function(n,t){return d("span",t,n)},d=function(n,t,r){return"<"+n+Object.keys(t).map(function(n){return" "+n+'="'+t[n]+'"'}).join("")+">"+r+"</"+n+">"},g=function(n,t,r){return N(v(n,t),{class:"jstBracket"})+N("",{class:"jstFold",onclick:"JSONTree.toggle('"+r+"')"})};this.toggle=function(n){var t=document.getElementById(n),r=t.parentNode,e=t.previousElementSibling;""===t.className?(t.className="jstHiddenBlock",r.className="jstFolded",e.className="jstExpand"):(t.className="",r.className="",e.className="jstFold")};var p=function(n,t){return N(v(n,t),{})},v=function(n,t){return Array(2*t+1).join(" ")+n};return this}();
</script>
</head>
<body class='extent standard default hide-overflow bdd-report'>
<div id='theme-selector' alt='Click to toggle theme. To enable by default, use theme configuration.' title='Click to toggle theme. To enable by default, use theme configuration.'>
<span><i class='material-icons'>desktop_windows</i></span>
</div>
<nav>
<div class="nav-wrapper">
<a href="#!" class="brand-logo black"><img src="https://cdn.rawgit.com/extent-framework/extent-github-cdn/d74480e/commons/img/logo.png"></a>
<!-- slideout menu -->
<ul id='slide-out' class='side-nav fixed hide-on-med-and-down'>
<li class='waves-effect active'><a href='#!' view='test-view' onclick="configureView(0);chartsView('test');"><i class='material-icons'>dashboard</i></a></li>
<li class='waves-effect'><a href='#!' view='category-view' onclick="configureView(1)"><i class='material-icons'>label_outline</i></a></li>
<li class='waves-effect'><a href='#!' onclick="configureView(-1);chartsView('dashboard');" view='dashboard-view'><i class='material-icons'>track_changes</i></a></li>
</ul>
<!-- report name -->
<span class='report-name'>Automation Report</span>
<!-- report headline -->
<span class='report-headline'></span>
<!-- nav-right -->
<ul id='nav-mobile' class='right hide-on-med-and-down nav-right'>
<a href='#!'>
<span class='label blue darken-3 suite-start-time'>Jul 9, 2021 01:15:58 PM</span>
</a>
</ul>
</div>
</nav> <!-- container -->
<div class='container'>
<div id='test-view' class='view'>
<section id='controls'>
<div class='controls grey lighten-4'>
<!-- test toggle -->
<div class='chip transparent'>
<a class='dropdown-button tests-toggle' data-activates='tests-toggle' data-constrainwidth='true' data-beloworigin='true' data-hover='true' href='#'>
<i class='material-icons'>warning</i> Status
</a>
<ul id='tests-toggle' class='dropdown-content'>
<li status='pass'><a href='#!'>Pass <i class='material-icons green-text'>check_circle</i></a></li>
<li class='divider'></li>
<li status='clear' clear='true'><a href='#!'>Clear Filters <i class='material-icons'>clear</i></a></li>
</ul>
</div>
<!-- test toggle -->
<!-- category toggle -->
<div class='chip transparent'>
<a class='dropdown-button category-toggle' data-activates='category-toggle' data-constrainwidth='false' data-beloworigin='true' data-hover='true' href='#'>
<i class='material-icons'>local_offer</i> Category
</a>
<ul id='category-toggle' class='dropdown-content'>
<li><a href='#'>@moretab</a></li>
<li class='divider'></li>
<li class='clear'><a href='#!' clear='true'>Clear Filters</a></li>
</ul>
</div>
<!-- category toggle -->
<!-- clear filters -->
<div class='chip transparent hide'>
<a class='' id='clear-filters' alt='Clear Filters' title='Clear Filters'>
<i class='material-icons'>close</i> Clear
</a>
</div>
<!-- clear filters -->
<!-- enable dashboard -->
<div id='toggle-test-view-charts' class='chip transparent'>
<a class='pink-text' id='enable-dashboard' alt='Enable Dashboard' title='Enable Dashboard'>
<i class='material-icons'>track_changes</i> Dashboard
</a>
</div>
<!-- enable dashboard -->
<!-- search -->
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
<a href="#" class='search-div'>
<i class='material-icons'>search</i> Search
</a>
<div class='input-field left hide'>
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
</div>
</div>
<!-- search -->
</div>
</section>
<div id='test-view-charts' class='subview-full'>
<div id='charts-row' class='row nm-v nm-h'>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Features</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='parent-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>1</span> feature(s) passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> feature(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped
</div>
</div>
</div>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Scenarios</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='child-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>1</span> scenario(s) passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> scenario(s) failed,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
</div>
</div>
</div>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Steps</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='grandchild-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>5</span> step(s) passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> scenario(s) failed,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
</div>
</div>
</div>
</div>
<div id="timeline-chart" class="row nm-v nm-h">
<div class="col s12 m12 l12 np-h">
<div class="card-panel">
<div class='left panel-name'>Timeline (seconds)</div>
<div class="chart-box" style="width:98%;max-height:145px;">
<canvas id="timeline" height="120"></canvas>
</div>
</div>
</div>
</div>
</div> <div class='subview-left left'>
<div class='view-summary'>
<ul id='test-collection' class='test-collection'>
<li class='test displayed active has-leaf pass' status='pass' bdd='true' test-id='1'>
<div class='test-heading'>
<span class='test-name'>More tab features verification</span>
<span class='test-time'>Jul 9, 2021 01:15:59 PM</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='test-content hide'>
<div class="sr-filters bdd-filters">
<a class="btn-floating waves-effect waves-light pass green" title="pass"><i class='material-icons'>check_circle</i></a>
<a class="btn-floating waves-effect waves-light fail red" title="fail"><i class='material-icons'>cancel</i></a>
<a class="btn-floating waves-effect waves-light skip blue" title="skip"><i class='material-icons'>redo</i></a>
<a class="btn-floating waves-effect waves-light clear grey" title="clear"><i class='material-icons'>clear</i></a>
</div>
<div class='scenario outline node' test-id='2' status='pass'>
<div class='category-list'>
<span class='category label'>@moretab</span>
</div>
<span class='duration right label'>0h 0m 41s+379ms</span>
<div class="bdd-test">
<div class="scenario-name"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span> Scenario Outline: Verify user can perofrm different actions in Profile request</div>
<table class='runtime-table table-striped table'><tr><td>username</td><td>password</td></tr><tr><td>hillmgr</td><td>Ss@hills2</td></tr></table>
</div>
<ul class='steps'>
<li test-id='3' class='node scenario pass' status='pass'>
<div class="step-name" title=""><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>Verify user can perofrm different actions in Profile request</div>
<ul class='gc steps'>
<li test-id='4' class='gc given pass' status='pass'>
<h6 class="step-name" title="HillsLoginSteps.user_login_to_hills_application_with_username_and_password(String,String)"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>Given user login to hills application with hillmgr and Ss@hills2</h6>
<div class="node-step"></div>
</li>
<li test-id='5' class='gc when pass' status='pass'>
<h6 class="step-name" title="MoreSteps.userclickonMoretab()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>When user click on More tab</h6>
<div class="node-step"></div>
</li>
<li test-id='6' class='gc and pass' status='pass'>
<h6 class="step-name" title="MoreSteps.userclickonProfilerequestlink()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user click on Profile request link</h6>
<div class="node-step"></div>
</li>
<li test-id='7' class='gc and pass' status='pass'>
<h6 class="step-name" title="MoreSteps.userexportspendingapprovalsinExcel()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user exports pending approvals in Excel</h6>
<div class="node-step"></div>
</li>
<li test-id='8' class='gc and pass' status='pass'>
<h6 class="step-name" title="MoreSteps.userexportsallprofilerequestinExcel()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user exports all profile request in Excel</h6>
<div class="node-step"></div>
</li>
</ul>
</li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
<!-- subview left -->
<div class='subview-right left'>
<div class='view-summary'>
<div id='step-filters' class="right sr-filters">
<a class="btn-floating waves-effect waves-light green" status="pass" alt="pass" title="pass"><i class="material-icons">check_circle</i></a>
<a class="btn-floating waves-effect waves-light red" status="fail" alt="fail" title="fail"><i class="material-icons">cancel</i></a>
<a class="btn-floating waves-effect waves-light red darken-4" status="fatal" alt="fatal" title="fatal"><i class="material-icons">cancel</i></a>
<a class="btn-floating waves-effect waves-light pink text-lighten-1" status="error" alt="error" title="error"><i class="material-icons">error</i></a>
<a class="btn-floating waves-effect waves-light orange" alt="warning" status="warning" title="warning"><i class="material-icons">warning</i></a>
<a class="btn-floating waves-effect waves-light teal" status="skip" alt="skip" title="skip"><i class="material-icons">redo</i></a>
<a class="btn-floating waves-effect waves-light grey" status="clear" alt="Clear filters" title="Clear filters"><i class="material-icons">clear</i></a>
</div>
<h5 class='test-name'></h5>
</div>
</div>
<!-- subview right -->
</div>
<!-- test view --><div id='category-view' class='view hide'>
<section id='controls'>
<div class='controls grey lighten-4'>
<!-- search -->
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
<a href="#" class='search-div'>
<i class='material-icons'>search</i> Search
</a>
<div class='input-field left hide'>
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
</div>
</div>
<!-- search -->
</div>
</section>
<div class='subview-left left'>
<div class='view-summary'>
<ul id='category-collection' class='category-collection'>
<li class='category displayed active'>
<div class='category-heading'>
<span class='category-name'>@moretab</span>
<span class='category-status right'>
<span class='label pass'>2</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span status="pass" class='label green accent-4 white-text'>Passed: 2</span>
</div>
<div class='category-tests'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Timestamp</th>
<th>TestName</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jul 9, 2021 01:15:59 PM</td>
<td class='linked' test-id='2'>Verify user can perofrm different actions in Profile request</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Jul 9, 2021 01:15:59 PM</td>
<td class='linked' test-id='3'>Verify user can perofrm different actions in Profile request</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class='subview-right left'>
<div class='view-summary'>
<h5 class='category-name'></h5>
</div>
</div>
</div>
<!-- category view --><!-- exception view --><div id='dashboard-view' class='view hide'>
<div class='card-panel transparent np-v'>
<h5>Dashboard</h5>
<div class='row'>
<div class='col s2'>
<div class='card-panel r'>
Features
<div class='panel-lead'>1</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Scenarios
<div class='panel-lead'>1</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Steps
<div class='panel-lead'>5</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Start
<div class='panel-lead'>Jul 9, 2021 01:15:58 PM</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
End
<div class='panel-lead'>Jul 9, 2021 01:16:43 PM</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Time Taken
<div class='panel-lead'>0h 0m 44s+949ms</div>
</div>
</div>
<div class='col s6'>
<div class='card-panel dashboard-categories'>
<span class='right label cyan white-text'>Categories</span><p>&nbsp;</p>
<table>
<tr>
<th>Name</th>
<th>Passed</th>
<th>Failed</th>
<th>Skipped</th>
<th>Passed %</th>
</tr>
<tr>
<td>@moretab</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>
100%
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- dashboard view -->
<!-- testrunner-logs view --> </div>
<!-- container -->
<script>
var statusGroup = {
parentCount: 1,
passParent: 1,
failParent: 0,
fatalParent: 0,
errorParent: 0,
warningParent: 0,
skipParent: 0,
exceptionsParent: 0,
childCount: 1,
passChild: 1,
failChild: 0,
fatalChild: 0,
errorChild: 0,
warningChild: 0,
skipChild: 0,
infoChild: 0,
debugChild: 0,
exceptionsChild: 0,
grandChildCount: 5,
passGrandChild: 5,
failGrandChild: 0,
fatalGrandChild: 0,
errorGrandChild: 0,
warningGrandChild: 0,
skipGrandChild: 0,
infoGrandChild: 0,
debugGrandChild: 0,
exceptionsGrandChild: 0,
};
</script>
<script>
var timeline = {
"More tab features verification":41.379
};
</script>
<script src='https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/js/extent.js' type='text/javascript'></script>
<script type='text/javascript'>
$(document).ready(function() {
});
</script>
</body>
</html>

View File

@ -0,0 +1,173 @@
[
{
"line": 1,
"elements": [
{
"start_timestamp": "2021-07-09T07:45:59.535Z",
"line": 12,
"name": "Verify user can perofrm different actions in Profile request",
"description": "",
"id": "more-tab-features-verification;verify-user-can-perofrm-different-actions-in-profile-request;;2",
"after": [
{
"result": {
"duration": 1520522800,
"status": "passed"
},
"match": {
"location": "ReportsSteps.closeBrowser()"
}
},
{
"result": {
"duration": 508700,
"status": "passed"
},
"match": {
"location": "MoreSteps.closeBrowser()"
}
},
{
"result": {
"duration": 349400,
"status": "passed"
},
"match": {
"location": "NetworkMapsSteps.closeBrowser()"
}
},
{
"result": {
"duration": 477800,
"status": "passed"
},
"match": {
"location": "TrackTabSteps.closeBrowser()"
}
},
{
"result": {
"duration": 49438400,
"status": "passed"
},
"match": {
"location": "OrganizationSteps.takeScreenshotOnFailure(Scenario)"
}
},
{
"result": {
"duration": 393600,
"status": "passed"
},
"match": {
"location": "MyListsSteps.closeBrowser()"
}
},
{
"result": {
"duration": 22590700,
"status": "passed"
},
"match": {
"location": "KOLProfileSteps.closeBrowser()"
}
},
{
"result": {
"duration": 358200,
"status": "passed"
},
"match": {
"location": "HomeTabSteps.closeBrowser()"
}
}
],
"type": "scenario",
"keyword": "Scenario Outline",
"steps": [
{
"result": {
"duration": 27920182800,
"status": "passed"
},
"line": 4,
"name": "user login to hills application with hillmgr and Ss@hills2",
"match": {
"arguments": [
{
"val": "hillmgr",
"offset": 37
},
{
"val": "Ss@hills2",
"offset": 49
}
],
"location": "HillsLoginSteps.user_login_to_hills_application_with_username_and_password(String,String)"
},
"keyword": "Given "
},
{
"result": {
"duration": 381562500,
"status": "passed"
},
"line": 5,
"name": "user click on More tab",
"match": {
"location": "MoreSteps.userclickonMoretab()"
},
"keyword": "When "
},
{
"result": {
"duration": 4985892300,
"status": "passed"
},
"line": 6,
"name": "user click on Profile request link",
"match": {
"location": "MoreSteps.userclickonProfilerequestlink()"
},
"keyword": "And "
},
{
"result": {
"duration": 4245328600,
"status": "passed"
},
"line": 7,
"name": "user exports pending approvals in Excel",
"match": {
"location": "MoreSteps.userexportspendingapprovalsinExcel()"
},
"keyword": "And "
},
{
"result": {
"duration": 4019424300,
"status": "passed"
},
"line": 8,
"name": "user exports all profile request in Excel",
"match": {
"location": "MoreSteps.userexportsallprofilerequestinExcel()"
},
"keyword": "And "
}
],
"tags": [
{
"name": "@moretab"
}
]
}
],
"name": "More tab features verification",
"description": "",
"id": "more-tab-features-verification",
"keyword": "Feature",
"uri": "file:src/test/resources/Features/More.feature",
"tags": []
}
]

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<testsuite failures="0" name="cucumber.runtime.formatter.JUnitFormatter" skipped="0" tests="1" time="43.349911">
<testcase classname="More tab features verification" name="Verify user can perofrm different actions in Profile request" time="43.349911">
<system-out><![CDATA[Given user login to hills application with hillmgr and Ss@hills2............passed
When user click on More tab.................................................passed
And user click on Profile request link......................................passed
And user exports pending approvals in Excel.................................passed
And user exports all profile request in Excel...............................passed
]]></system-out>
</testcase>
</testsuite>

View File

@ -0,0 +1,3 @@
F:\Selenium\Hills_With_Cucumber\src\test\java\Stepdefinition\testRunner.java
F:\Selenium\Hills_With_Cucumber\src\test\java\PageFactory\loginPage.java
F:\Selenium\Hills_With_Cucumber\src\test\java\Stepdefinition\Loginsteps.java