I see in you code how you construct the injector. But I never see you
making use of it.
I am not familiar with the Selenium library. Does it make use of the
injector in the SeleniumTest.getCurrentPage() method?
I rather doubt that Selenium will use you injector. So where do you use
the injector?
On 27.02.2017 21:46, Nandish MC wrote:
public abstract class Page extends SelPage
{
public void logOut() {
System.out.println("inside Product");
WebDriverWait wait = new WebDriverWait(getDriver(),
getWaitTime());
WebElement element =
wait.until(ExpectedConditions.elementToBeClickable(By.id("logout")));
element.click();
// this is typically not recommended, but logout is an
oddball; because
// we don't know where we're going after logout, we can't do a
"wait"
// for something on that page
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// eat it
}
}
}
Class ProjPage extends Page{
@Override
public void logOut() {
System.out.println("Inside Project");
WebDriverWait wait = new WebDriverWait(getDriver(), getWaitTime());
WebElement element =
wait.until(ExpectedConditions.elementToBeClickable(By.id("logout")));
element.click();
// this is typically not recommended, but logout is an
oddball; because
// we don't know where we're going after logout, we can't do a
"wait"
// for something on that page
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// eat it
}
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses({ Login.class,
ProjectLogout.class,
})
public class ProjSeleniumSuite extends SeleniumSuite {
private static Injector injector;
/*
* No code is needed in here. Add new tests to the suite by
putting them in
* the @Suite.SuiteClasses() declaration above.
*/
@BeforeClass
public static void setUp() throws Exception {
System.out.println("setting up");
injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
System.out.println("configuriung");
bind(Page.class).to(ProjPage.class);
}
});
}
@AfterClass
public static void tearDown() throws Exception {
System.out.println("tearing down");
injector = null;
}
}
public class ProjLogout extends ProjTest {
/**
* Log out of the application.
*/
@Test
public void logout() {
System.out.println("inside CBC logout............");
getCurrentPage().logout();
}
}
Class DashboardPage extends Class Page{
{
//inherits Page logout method
methods 1
methods 2
methods 3
}
public abstract class ProjTest extends SeleniumTest{
public Page getCurrentPage() {
try{
Page dashBoardPage =(Page) super.getCurrentPage(); // This
gets the Dashboard page instance
}catch(Exception e){
setCurrentPage(null);
}
return (Page) super.getCurrentPage();
}
}
Above are the set of classes used, here I am trying to get ProjPage
logout method to be executed instead of Page.logout() method.
This method is an inherited method for Dashboard Page.
currently, even after binding I see Page.logout() method is executed
On Monday, February 27, 2017 at 1:01:58 AM UTC-5, scl wrote:
So far this code looks correct. Can you also provide some of the
test methods. Maybe something is hiding there.
Am 27. Februar 2017 03:45:39 MEZ schrieb Nandish MC
<[email protected] <javascript:>>:
I have multiple hierarchical class like below
public abstract class Page extends SelPage
{
public method 1{}
public method 2{}
public method 3{}
}
Class DashboardPage extens Class Page{
{ }
Here I need to bind new Page class
Class ProjPage extends Page{
public method1{} /* change method implementation //
public method 2{} // change method implementation //
public method 3{} // change method implementation */
}
public class ProjSeleniumSuite extends SeleniumSuite {
|private static Injector injector; @BeforeClass public static
void setUp() throws Exception { injector =
Guice.createInjector(new AbstractModule() { @Override
protected void configure() {
System.out.println("configuriung");
bind(Page.class).to(ProjPage.class); } }); } @AfterClass
public static void tearDown() throws Exception { injector =
null; } |
}
The above code runs fine..but it is not binding the Page class
method implementation with ProjPage class methods Can i
achieve this using Guice binder like above?
The thing i need to achieve is, when i instantiate
DashboardPage , i want ProjPage methods to be called instead
of Page class methods.
Please help
-- You received this message because you are subscribed to the Google
Groups "google-guice" group. To unsubscribe from this group and stop
receiving emails from it, send an email to
[email protected]
<mailto:[email protected]>. To post to this
group, send email to [email protected]
<mailto:[email protected]>. Visit this group at
https://groups.google.com/group/google-guice. To view this discussion
on the web visit
https://groups.google.com/d/msgid/google-guice/43253ec2-1e7e-401d-99dd-d429f2d14a0d%40googlegroups.com
<https://groups.google.com/d/msgid/google-guice/43253ec2-1e7e-401d-99dd-d429f2d14a0d%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-guice/34fec307-4722-c48f-ff44-343de6609986%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.