Project move to git repository
This commit is contained in:
parent
faae66c69a
commit
3c5740db7b
|
@ -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>
|
|
@ -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>
|
|
@ -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
|
|
@ -0,0 +1,4 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,2 @@
|
|||
browser.baseURL=https://testcolpal.aisselkolm.com/hills_staging/login
|
||||
browser.name=chrome
|
|
@ -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>
|
||||
|
||||
|
|
@ -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();
|
||||
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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() {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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");
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
// }
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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| | | |
|
|
@ -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|
|
|
@ -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|
|
|
@ -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|
|
|
@ -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)|
|
|
@ -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|
|
|
@ -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|
|
|
@ -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|
|
|
@ -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|
|
||||
|
|
@ -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|
|
|
@ -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|
|
||||
|
|
@ -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|
|
|
@ -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|
|
||||
|
||||
|
||||
|
||||
|
|
@ -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|
|
||||
|
|
@ -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)|
|
|
@ -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|
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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|
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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|
|
||||
|
|
@ -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|
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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|
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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>
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
|||
/classes/
|
||||
/test-classes/
|
|
@ -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; });
|
||||
}
|
|
@ -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
|
@ -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"
|
||||
});
|
||||
});
|
|
@ -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;
|
||||
}
|
|
@ -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": []
|
||||
}
|
||||
]
|
|
@ -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>
|
|
@ -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; });
|
||||
}
|
|
@ -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
|
@ -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"
|
||||
});
|
||||
});
|
|
@ -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;
|
||||
}
|
|
@ -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={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},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> </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>
|
|
@ -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": []
|
||||
}
|
||||
]
|
|
@ -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>
|
|
@ -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
|
Loading…
Reference in New Issue