Singleton Pattern With Selenium WebDriver + Java + TestNG

Поделиться
HTML-код
  • Опубликовано: 28 авг 2024
  • In this video, I have explained how to implement Singleton Pattern With Selenium WebDriver + Java + TestNG.
    Schedule a meeting in case of any queries/guidance/counselling:
    calendly.com/n...
    ~~~Subscribe to this channel, and press bell icon to get some interesting videos on Selenium and Automation:
    www.youtube.co...
    Follow me on my Facebook Page:
    / naveenqtpexpert
    Let's join our Automation community for some amazing knowledge sharing and group discussion on Telegram:
    t.me/joinchat/...
    Naveen AutomationLabs Paid Courses:
    GIT Hub Course:
    naveenautomati...
    Java & Selenium:
    naveenautomati...
    Java & API +POSTMAN + RestAssured + HttpClient:
    naveenautomati...

Комментарии • 20

  • @naveenautomationlabs
    @naveenautomationlabs  Месяц назад

    GIT Repo URL : github.com/naveenanimation20/SeleniumWithDesignPatterns_Java.git

  • @tippanaudayabhaskar8334
    @tippanaudayabhaskar8334 Месяц назад +1

    Thank you Naveen for making it clear using Singleton Pattern for parallel run using TestNG.

  • @mandheermaan
    @mandheermaan Месяц назад +1

    I Have watched almost all your videos, you have great depth knowledge with related Selenium and latest techies coming in the market. Great hard work done !!!

  • @whovishalmishra
    @whovishalmishra 18 дней назад

    Amazing, simple and useful.

  • @RajibLama
    @RajibLama Месяц назад

    Thank you Naveen for clear my singleton pattern concept.

  • @emb3rke
    @emb3rke Месяц назад +3

    Great video, thank you. Why is it recommended to use Singleton pattern regarding WebDriver? What is the benefit of it?

    • @gourisankardash646
      @gourisankardash646 Месяц назад

      @@emb3rke optimization of memory use by avoiding multiple objects creation.

  • @J.Ramanathan
    @J.Ramanathan Месяц назад +1

    Thank you Naveen

  • @Rainbow-Dance-Academy
    @Rainbow-Dance-Academy Месяц назад +1

    Thanks

  • @pabitra_swain
    @pabitra_swain Месяц назад

    Hi Naveen, I understand Singleton is an important concept from the interview point of view. But I am just wondering why to complecate the setup by introducing it to the DriverManager class. Simple ThreadLocal of WebDriver would also work fine right? Is it like just for shake of having Singleton pattern we are having it? Or really some usecase is there where it will be more benefitial over just ThreadLocal?

  • @karnekantiarun4353
    @karnekantiarun4353 Месяц назад +1

    Hi bro thanks for the content one query webdriver manager and app test class are from different package it will works with same package also TIA

    • @naveenautomationlabs
      @naveenautomationlabs  Месяц назад

      Hi, it doesn't matter. You can call it from anywhere.
      Always, design your test classes under src/test/java and non test classes under src/main/java.

    • @karnekantiarun4353
      @karnekantiarun4353 Месяц назад +1

      @@naveenautomationlabs Thanks bro pls continue all the design patterns series in java

  • @Life_Observers
    @Life_Observers Месяц назад

    Hey Naveen,
    Please make a video on how to create portfolio

  • @harisharipirala3346
    @harisharipirala3346 Месяц назад

    Thanks for the Information but I have a question. Is it mandatory to implement singleton pattern while using ThreadLocal method. Because threadlocal itself is storing unique web driver thread instances right?

  • @bredlin_jose
    @bredlin_jose Месяц назад

    Hi Naveen, I integrated the same things with my existing framework, while executing the scripts the execution is not going good as expected.

  • @bihari1422
    @bihari1422 Месяц назад

    Memwhile the office laptop is facing difficulty to handle one instance of Chrome(after 114 lot of memory is being consumed by Chrome only )...

  • @kamesh70
    @kamesh70 Месяц назад +1

    Hi Naveen: Got a clarity on how to implement Singleton pattern. I have implemented it following your videos whereas when i triggered parallel tests with different browsers it's running always on chrome even though I have provided chrome, firefox & edge browser. Can you help me the reason.
    One more issue. I cloned your repository and tried running the tests and getting
    java.lang.IllegalStateException: object already exists
    at SeleniumWithSingleton.WebDriverManager.initDriver(WebDriverManager.java:19)
    at SeleniumWithSingleton.WebDriverManager.getInstance(WebDriverManager.java:48)
    at mytests.AppTest.setUp(AppTest.java:20)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
    at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
    at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:361)
    at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:296)
    at org.testng.internal.invokers.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:180)
    at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.testng.TestRunner.privateRun(TestRunner.java:829)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:475)
    at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:58)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
    java.lang.IllegalStateException: object already exists
    at SeleniumWithSingleton.WebDriverManager.initDriver(WebDriverManager.java:19)
    at SeleniumWithSingleton.WebDriverManager.getInstance(WebDriverManager.java:48)
    at mytests.AppTest.setUp(AppTest.java:20)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
    at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
    at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:361)
    at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:296)
    at org.testng.internal.invokers.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:180)
    at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.testng.TestRunner.privateRun(TestRunner.java:829)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:475)
    at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:58)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

    • @tester9586
      @tester9586 16 дней назад

      I get an error same. Hi @naveen, how can we solve this issue?

    • @pranavhanwante5301
      @pranavhanwante5301 11 дней назад +1

      Comment below in project
      // if (instance != null) { // handling reflection attack
      // throw new IllegalStateException("object already exists");
      // }