serenity-bdd / serenity-core

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.
http://serenity-bdd.info
Other
715 stars 513 forks source link

getDriver() not initialized. #3480

Open nishanbasnet opened 1 month ago

nishanbasnet commented 1 month ago

Hi , My understanding is as long as we have serenity.properties file or serenity.conf file , driver should be able to load from that file and get initialized. Not sure what I am doing wrong here. I followed the document as well.

I cannot initialize getDriver() method in the page class where it extends PageObject. MainClass public class LibraryResearchPage extends PageObject {

@FindBy(xpath = ".//*[@id='APjFqb']")
protected static WebElementFacade googleSearch;

public void openBrowser() { System.out.println("getDriver" + getDriver() ); } It is printing Uninitialised WebDriverFacade when I print getDriver().

Serenity.properties

Define the default driver

webdriver.driver=phantomjs

Appears at the top of the reports

serenity.project.name = Executive Office of the President webdriver.autodownload = true webdriver.driver = chrome headless.mode = true serenity.full.page.screenshot.strategy=true

Root package for any JUnit acceptance tests

serenity.test.root=net.article.mot.features

serenity.take.screenshots.for.* = FOR_EACH_ACTION

webdriver.timeouts.implicitlywait = 5000 serenity.take.screenshots=AFTER_EACH_STEP

Customise your riequirements hierarchy

serenity.requirement.types=feature, story

Run the tests without calling webdriver - useful to check your JUnit wiring

serenity.dry.run=true

Customise browser size

serenity.browser.height = 1200

serenity.browser.width = 1200

Serenity.conf serenity { take.screenshots = FOR_FAILURES }

headless.mode = true webdriver { driver = chrome capabilities { browserName = "chrome" acceptInsecureCerts = true "goog:chromeOptions" { args = ["remote-allow-origins=*","test-type", "no-sandbox", "ignore-certificate-errors", "--window-size=1000,800", "incognito", "disable-infobars", "disable-gpu", "disable-default-apps", "disable-popup-blocking", "disable-dev-shm-usage", "disable-extensions", "disable-web-security", "disable-translate", "disable-logging"] } } }

UTF-8 4.1.12 5.10.2 1.10.2 7.16.1 UTF-8 net.serenity-bdd serenity-core ${serenity.version} test net.serenity-bdd serenity-cucumber ${serenity.version} test net.serenity-bdd serenity-screenplay ${serenity.version} test net.serenity-bdd serenity-screenplay-webdriver ${serenity.version} test net.serenity-bdd serenity-ensure ${serenity.version} test org.junit.platform junit-platform-launcher ${junit-platform-suite.version} test io.cucumber cucumber-junit-platform-engine ${cucumber-junit-platform-engine.version} test org.junit.platform junit-platform-suite ${junit-platform-suite.version} test org.junit.jupiter junit-jupiter-engine ${junit-vintage-engine.version} test org.junit.vintage junit-vintage-engine ${junit-vintage-engine.version} test ch.qos.logback logback-classic 1.2.10 org.assertj assertj-core 3.23.1 test org.apache.maven.plugins maven-surefire-plugin 3.1.2 false maven-failsafe-plugin 3.1.2 **/*Test.java **/Test*.java **/*TestSuite.java **/When*.java ${webdriver.base.url} classes methods true integration-test verify org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 net.serenity-bdd.maven.plugins serenity-maven-plugin ${serenity.version} ${tags} single-page-html net.serenity-bdd serenity-single-page-report ${serenity.version} serenity-reports post-integration-test aggregate

wakaleo commented 1 month ago

It will be initialised the first time you use it.

nishanbasnet commented 1 month ago

before initializing I want to use openUrl("www.google.com"), I am getting Undefined default URL for page object LibraryResearchPage error.

nishanbasnet commented 1 month ago

I tried with this option as well getDriver().get("www.google.com"); waitABit(5000); Getting this: org.openqa.selenium.InvalidArgumentException: invalid argument