No Selenium test is not using injector. I am in assumption when suite @beforeClass method is executed to bind, it will have Page bound to ProjPage.
How do I need to use the injector in this case? Between I am new to Guice. > On Feb 27, 2017, at 5:17 PM, Stephan Classen <st.clas...@gmx.ch> wrote: > > 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 <gowda....@gmail.com>: >>>> >>>> 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 google-guice+unsubscr...@googlegroups.com. >> To post to this group, send email to google-guice@googlegroups.com. 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. >> For more options, visit https://groups.google.com/d/optout. > -- > You received this message because you are subscribed to a topic in the Google > Groups "google-guice" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/google-guice/Kema1MvYHtg/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > google-guice+unsubscr...@googlegroups.com. > To post to this group, send email to google-guice@googlegroups.com. > 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. -- 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 google-guice+unsubscr...@googlegroups.com. To post to this group, send email to google-guice@googlegroups.com. 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/4613CA3C-987E-4252-A597-141D2AB0D827%40gmail.com. For more options, visit https://groups.google.com/d/optout.