Quantcast
Channel: Active questions tagged selenium - Stack Overflow
Viewing all articles
Browse latest Browse all 99403

Groovy, Selenium, Cucumber, adding ChromeOptions arguments

$
0
0

I wanted to create a BaseTest.groovy where i implement the Webdriver with headless mode.

package api

import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions

class BaseTest{
    ChromeOptions chromeOptions = new ChromeOptions()
    chromeOptions.addArguments(["--headless", "--no-sandbox"])
    static WebDriver driver = new ChromeDriver(chromeOptions)
}

I have a LoginSteps.groovy stepdefinitions file

package stepDefinitions

import api.Helper.helper
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions

import static cucumber.api.groovy.EN.*

Given(~/^I am on the xyz login page$/) { ->
    helper.setPage("https://xyzTestpage.com/")
}

When(~/^I sign in as "([^"]*)"$/) { String arg1 ->
    helper.signIn("username","password")
}

Then(~/^I load the homepage$/) { ->
    helper.setPreset()
}

And i have a helper.groovy file where i implement the methods

package api.Helper

import api.BaseTest
import api.Xpaths.LoginPageXpaths
import api.Tools.tools
import org.openqa.selenium.By
import org.openqa.selenium.WebElement

class helper extends BaseTest {

    static void setPage(String url){
        driver.get(url)
    }

    static void signIn(String username, String password){

        WebElement uname = driver.findElement(By.xpath(LoginPageXpaths.userNameField()))
        uname.sendKeys(username)

        WebElement pwd = driver.findElement(By.xpath(LoginPageXpaths.passWordField()))
        pwd.sendKeys(password)

        WebElement loginButton = driver.findElement(By.xpath(LoginPageXpaths.loginButton()))
        loginButton.click()
    }

    static void setPreset(){
        WebElement multiCountry = driver.findElement(By.xpath(LoginPageXpaths.multiCountryButton()))
        multiCountry.click()

        WebElement openButton = driver.findElement(By.xpath(LoginPageXpaths.openButton()))
        openButton.click()

        String inputWindow = driver.getWindowHandle()

        for(String loggedInWindow : driver.getWindowHandles()){
            driver.switchTo().window(loggedInWindow)
        }

        WebElement lineItem = driver.findElement(By.xpath(LoginPageXpaths.calculateButtonXpath()))
        tools.waitForElementToBeClickable(driver,lineItem,25)
        driver.quit()
    }
}

So my problem is, i don't know where should i set the headless mode, because i got error, when i run this.


Viewing all articles
Browse latest Browse all 99403

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>