MainPage.scala
package samples.test.Tests

import java.time.Duration
import java.util.concurrent.TimeUnit

import scala.collection.JavaConverters.asScalaSetConverter
import scala.language.postfixOps
import scala.util.Failure
import scala.util.Success
import scala.util.Try

import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions
import org.openqa.selenium.JavascriptExecutor
import org.openqa.selenium.support.ui.WebDriverWait
import org.openqa.selenium.By
import java.time.Duration

import scala.collection.JavaConverters.asScalaBufferConverter
import scala.language.implicitConversions
import scala.util.Random

import org.jsoup.Jsoup
import org.openqa.selenium.By
import org.testng.annotations._
import PageObjectModel.MainPage
import PageObjectModel.WebDriverInit
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.support.ui.WebDriverWait
import org.openqa.selenium.WebElement
import org.scalatest.Matchers._
import org.scalatest.testng.TestNGSuiteLike
import org.testng.Reporter
import org.openqa.selenium.Keys
import org.openqa.selenium.chrome.ChromeDriver

class MainPage(implicit val driver: ChromeDriver) extends Utils with ElementsMainPage with ElementImplicits {

	 val dataSenderPage: DataSenderPage = new DataSenderPage()

}


object MainPage {

	def apply(implicit driver: ChromeDriver) = new MainPage()

}

trait ElementsMainPage extends ElementImplicits {
	this: MainPage =>

	def usernameInput: List[WebElement] = driver.findElements(Xpath("//*[@id='1helauaoii80']")).asScala.toList

	def passwordInput: List[WebElement] = driver.findElements(Xpath("//*[@id='6afbbvfn0560']")).asScala.toList

	def loginButton: List[WebElement] = driver.findElements(Xpath("//*[@id='pp-login-1']/div[4]/input")).asScala.toList
}