Skip to content

Commit 32004d9

Browse files
committed
Create Lead and some refactors
1 parent 3564024 commit 32004d9

17 files changed

Lines changed: 701 additions & 31 deletions

File tree

‎build.gradle‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ task runTestNGTestCases(type: Test) {
9898
systemProperties.put('primaryUserName', primaryUserName)
9999
systemProperties.put('primaryUserPassword', primaryUserPassword)
100100
systemProperties.put('browser', browser)
101+
systemProperties.put('mode', mode)
102+
systemProperties.put('userName', userName)
103+
systemProperties.put('key', key)
104+
systemProperties.put('remoteBrowser', remoteBrowser)
105+
systemProperties.put('remotePlatform', remotePlatform)
106+
systemProperties.put('remoteVersion', remoteVersion)
101107
}
102108

103109
//Method to split suites if they are added with commas through command line

‎gradle.properties‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
rootProject.name = 'SFDC-Team2'
22

33
#suites = src/test/java/testng/TestNGSuite.xml,
4-
suites = src/test/java/junit/JUnitSuite.java
4+
suites = src/test/java/resources/Suite.xml
55
primaryUserName =
66
primaryUserPassword =
77
displayName = SFDC Team2
88
browser = Firefox
99
groups=
10+
mode = local
11+
userName =
12+
key =
13+
remoteBrowser = Firefox
14+
remotePlatform = Linux
15+
remoteVersion = 40.0

‎src/main/java/components/NavigationTab.java‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pages.Contact.ContactHome;
88
import pages.account.AccountHome;
99
import pages.campaign.CampaignHome;
10+
import pages.lead.LeadHome;
1011
import pages.opportunity.OpportunitiesHome;
1112
import pages.product.ProductHome;
1213

@@ -35,8 +36,9 @@ public class NavigationTab extends BaseWebUI {
3536
@CacheLookup
3637
private WebElement productsTab;
3738

38-
public NavigationTab() {
39-
}
39+
@FindBy(linkText = "Leads")
40+
@CacheLookup
41+
private WebElement leadsTab;
4042

4143
public CampaignHome goToCampaignTab(){
4244
wait.until(ExpectedConditions.elementToBeClickable(campaignsTab));
@@ -65,4 +67,10 @@ public ProductHome goToProductTab() {
6567
productsTab.click();
6668
return new ProductHome();
6769
}
70+
71+
public LeadHome goToLeadTab() {
72+
wait.until(ExpectedConditions.elementToBeClickable(leadsTab));
73+
leadsTab.click();
74+
return new LeadHome();
75+
}
6876
}
Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package framework;
22

33
import org.openqa.selenium.WebDriver;
4+
import org.openqa.selenium.WebDriverException;
45
import org.openqa.selenium.chrome.ChromeDriver;
56
import org.openqa.selenium.firefox.FirefoxDriver;
67
import org.openqa.selenium.ie.InternetExplorerDriver;
8+
import org.openqa.selenium.remote.DesiredCapabilities;
9+
import org.openqa.selenium.remote.RemoteWebDriver;
710
import org.openqa.selenium.safari.SafariDriver;
811
import org.openqa.selenium.support.ui.WebDriverWait;
912

13+
import java.net.MalformedURLException;
14+
import java.net.URL;
1015
import java.util.concurrent.TimeUnit;
1116

1217
/**
@@ -17,7 +22,15 @@ public class DriverManager {
1722
private static DriverManager instance;
1823
private WebDriver driver;
1924
private WebDriverWait wait;
20-
String browser;
25+
26+
private String browser = Environment.getInstance().getBrowser();
27+
private String mode = Environment.getInstance().getMode();
28+
private String userName = Environment.getInstance().getUserName();
29+
private String key = Environment.getInstance().getKey();
30+
private String remoteBrowser = Environment.getInstance().getRemoteBrowser();
31+
private String remotePlatform = Environment.getInstance().getRemotePlatform();
32+
private String remoteVersion = Environment.getInstance().getRemoteVersion();
33+
2134

2235
private DriverManager() {
2336
browser = Environment.getInstance().getBrowser();
@@ -34,28 +47,42 @@ public static DriverManager getInstance() {
3447
private void initializeDriver(){
3548
String baseUrl = "https://login.salesforce.com";
3649

37-
if(browser.equalsIgnoreCase("Firefox")){
38-
driver = new FirefoxDriver();
39-
}
40-
else if(browser.equalsIgnoreCase("Chrome")){
41-
System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");
42-
driver = new ChromeDriver();
43-
}
44-
else if(browser.equalsIgnoreCase("IE")){
45-
System.setProperty("webdriver.ie.driver", "drivers/IEDriverServer.exe");
46-
driver = new InternetExplorerDriver();
47-
}
48-
else if(browser.equalsIgnoreCase("Safari")){
49-
driver = new SafariDriver();
50+
if (mode.equalsIgnoreCase("Local")) {
51+
if (browser.equalsIgnoreCase("Firefox")) {
52+
driver = new FirefoxDriver();
53+
} else if (browser.equalsIgnoreCase("Chrome")) {
54+
System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");
55+
driver = new ChromeDriver();
56+
} else if (browser.equalsIgnoreCase("IE")) {
57+
System.setProperty("webdriver.ie.driver", "drivers/IEDriverServer.exe");
58+
driver = new InternetExplorerDriver();
59+
} else if (browser.equalsIgnoreCase("Safari")) {
60+
driver = new SafariDriver();
61+
}
62+
}else if (mode.equalsIgnoreCase("Remote")) {
63+
DesiredCapabilities caps = null;
64+
if(remoteBrowser.equalsIgnoreCase("Chrome")) {
65+
caps = DesiredCapabilities.chrome();
66+
}else if (remoteBrowser.equalsIgnoreCase("Firefox")) {
67+
caps = DesiredCapabilities.firefox();
68+
}
69+
caps.setCapability("platform", remotePlatform);
70+
caps.setCapability("version", remoteVersion);
71+
try {
72+
this.driver = new RemoteWebDriver(
73+
new URL("http://" + userName + ":" + key + "@ondemand.saucelabs.com:80/wd/hub"),
74+
caps);
75+
}catch(MalformedURLException e){
76+
LogManager.getInstance().addErrorLog(this.getClass().getName(), "Error on Initializer on remote environment :", e);
77+
}
5078
}
5179

52-
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
53-
wait = new WebDriverWait(driver,15);
80+
driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
81+
wait = new WebDriverWait(driver, 90);
5482

5583
driver.get(baseUrl);
5684

5785
driver.manage().window().maximize();
58-
5986
}
6087

6188
public WebDriver getDriver() {
@@ -67,6 +94,11 @@ public WebDriverWait getWait() {
6794
}
6895

6996
public void quit() {
70-
driver.quit();
97+
try{
98+
driver.quit();
99+
}
100+
catch(WebDriverException e){
101+
LogManager.getInstance().addErrorLog(this.getClass().getName(), e.getMessage(), e);
102+
}
71103
}
72104
}

‎src/main/java/framework/Environment.java‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,15 @@ public String getDisplayName() {
6666
return getEnv("displayName");
6767
}
6868

69+
public String getMode() { return getEnv("mode"); }
70+
71+
public String getUserName() { return getEnv("userName"); }
72+
73+
public String getKey() { return getEnv("key"); }
74+
75+
public String getRemoteBrowser() { return getEnv("remoteBrowser"); }
76+
77+
public String getRemotePlatform() { return getEnv("remotePlatform"); }
78+
79+
public String getRemoteVersion() { return getEnv("remoteVersion"); }
6980
}

‎src/main/java/pages/LookupPage.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,28 +31,28 @@ public Object clickNewBtn() {
3131
return null;
3232
}
3333

34-
public void searchByAccountName(String accountName) {
34+
public void searchByObjectName(String accountName) {
3535
super.driver.switchTo().frame(this.searchFrame);
3636
searchTxt.clear();
3737
searchTxt.sendKeys(accountName);
3838
goBtn.click();
3939
super.driver.switchTo().defaultContent();
4040
}
4141

42-
public void clickAccountName(String accountName) {
42+
public void clickObjectName(String accountName) {
4343
super.driver.switchTo().frame(this.resultsFrame);
4444
super.driver.findElement(By.linkText(accountName)).click();
4545
}
4646

47-
public void selectAccount(String accountName) {
47+
public void selectObject(String accountName) {
4848
String windowID = super.driver.getWindowHandle();
4949
Set<String> setWindows = super.driver.getWindowHandles();
5050
LinkedList<String> listWindows = new LinkedList<String>(setWindows);
5151
super.driver.switchTo().window(listWindows.getLast());
5252

5353
LookupPage lookupPage = new LookupPage();
54-
lookupPage.searchByAccountName(accountName);
55-
lookupPage.clickAccountName(accountName);
54+
lookupPage.searchByObjectName(accountName);
55+
lookupPage.clickObjectName(accountName);
5656

5757
super.driver.switchTo().window(windowID);
5858
}

‎src/main/java/pages/basepages/DetailsBase.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,9 @@ public void clickDeleteButton(boolean confirmDeletion) {
5555
"Delete button could not be clicked", e.fillInStackTrace());
5656
}
5757
}
58+
59+
protected String getValue(WebElement element) {
60+
super.wait.until(ExpectedConditions.visibilityOf(element));
61+
return element.getText();
62+
}
5863
}

‎src/main/java/pages/basepages/FormBase.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*/
1111
public abstract class FormBase extends BaseWebUI {
1212

13-
@FindBy(css = "input[name='save'")
13+
@FindBy(css = "input[name='save']")
1414
@CacheLookup
1515
protected WebElement saveBtn;
1616

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
package pages.lead;
2+
3+
import org.openqa.selenium.WebElement;
4+
import org.openqa.selenium.support.CacheLookup;
5+
import org.openqa.selenium.support.FindBy;
6+
import pages.basepages.DetailsBase;
7+
import utils.Helper;
8+
9+
/**
10+
* Created by marcelo on 9/5/15.
11+
*/
12+
public class LeadDetails extends DetailsBase {
13+
@FindBy(id = "lea2_ileinner")
14+
@CacheLookup
15+
private WebElement nameContainer;
16+
17+
@FindBy(id = "lea3_ileinner")
18+
@CacheLookup
19+
private WebElement companyContainer;
20+
21+
@FindBy(id = "lea4_ileinner")
22+
@CacheLookup
23+
private WebElement titleContainer;
24+
25+
@FindBy(id = "lea5_ileinner")
26+
@CacheLookup
27+
private WebElement leadSourceContainer;
28+
29+
@FindBy(id = "lea6_ileinner")
30+
@CacheLookup
31+
private WebElement industryContainer;
32+
33+
@FindBy(id = "lea7_ileinner")
34+
@CacheLookup
35+
private WebElement annualRevenueContainer;
36+
37+
@FindBy(id = "lea8_ileinner")
38+
@CacheLookup
39+
private WebElement phoneContainer;
40+
41+
@FindBy(id = "lea9_ileinner")
42+
@CacheLookup
43+
private WebElement mobileContainer;
44+
45+
@FindBy(id = "lea10_ileinner")
46+
@CacheLookup
47+
private WebElement faxContainer;
48+
49+
@FindBy(id = "lea11_ileinner")
50+
@CacheLookup
51+
private WebElement emailContainer;
52+
53+
@FindBy(id = "lea12_ileinner")
54+
@CacheLookup
55+
private WebElement webSiteContainer;
56+
57+
@FindBy(id = "lea13_ileinner")
58+
@CacheLookup
59+
private WebElement leadStatusContainer;
60+
61+
@FindBy(id = "lea14_ileinner")
62+
@CacheLookup
63+
private WebElement ratingContainer;
64+
65+
@FindBy(id = "lea15_ileinner")
66+
@CacheLookup
67+
private WebElement noOfEmployeesContainer;
68+
69+
@FindBy(id = "lea16_ileinner")
70+
@CacheLookup
71+
private WebElement addressContainer;
72+
73+
@FindBy(xpath = "//td[contains(., 'Product Interest')]/following-sibling::td[1]")
74+
@CacheLookup
75+
private WebElement productInterestContainer;
76+
77+
@FindBy(xpath = "//td[contains(., 'SIC Code')]/following-sibling::td[1]")
78+
@CacheLookup
79+
private WebElement sicCodeContainer;
80+
81+
@FindBy(xpath = "//td[contains(., 'Number of Locations')]/following-sibling::td[1]")
82+
@CacheLookup
83+
private WebElement numberOfLocationsContainer;
84+
85+
@FindBy(xpath = "//td[contains(., 'Current Generator')]/following-sibling::td[1]")
86+
@CacheLookup
87+
private WebElement currentGeneratorContainer;
88+
89+
@FindBy(xpath = "//td[contains(., 'Primary')]/following-sibling::td[1]")
90+
@CacheLookup
91+
private WebElement primaryContainer;
92+
93+
@FindBy(id = "lea17_ileinner")
94+
@CacheLookup
95+
private WebElement descriptionContainer;
96+
97+
public String getLeadName() { return getValue(nameContainer); }
98+
99+
public String getCompanyName() { return getValue(companyContainer); }
100+
101+
public String getTitle() { return getValue(titleContainer); }
102+
103+
public String getLeadSource() { return getValue(leadSourceContainer); }
104+
105+
public String getIndustry() { return getValue(industryContainer); }
106+
107+
public String getAnnualRevenue() {
108+
return Helper.removeSubstringToString(",",
109+
Helper.removeSubstringToString("$", getValue(annualRevenueContainer)));
110+
}
111+
112+
public String getPhone() { return getValue(phoneContainer); }
113+
114+
public String getMobile() { return getValue(mobileContainer); }
115+
116+
public String getFax() { return getValue(faxContainer); }
117+
118+
public String getEmail() { return getValue(emailContainer); }
119+
120+
public String getWebSite() {
121+
return Helper.removeSubstringToString("http://", getValue(webSiteContainer));
122+
}
123+
124+
public String getLeadStatus() { return getValue(leadStatusContainer); }
125+
126+
public String getRating() { return getValue(ratingContainer); }
127+
128+
public String getNoOfEmployees() { return getValue(noOfEmployeesContainer); }
129+
130+
public String getAddress() { return getValue(addressContainer); }
131+
132+
public String getProductInterest() { return getValue(productInterestContainer); }
133+
134+
public String getSicCode() { return getValue(sicCodeContainer); }
135+
136+
public String getNumberOfLocations() { return getValue(numberOfLocationsContainer); }
137+
138+
public String getCurrentGenerator() { return getValue(currentGeneratorContainer); }
139+
140+
public String getPrimary() { return getValue(primaryContainer); }
141+
142+
public String getDescription() { return getValue(descriptionContainer); }
143+
144+
@Override
145+
public Object clickEditBtn() {
146+
return null;
147+
}
148+
149+
@Override
150+
public Object clickDeleteBtn(boolean confirmDeletion) {
151+
return null;
152+
}
153+
}

0 commit comments

Comments
 (0)