
com.github.pierrenodet.fs2.selenium.Option.scala Maven / Gradle / Ivy
The newest version!
package com.github.pierrenodet.fs2.selenium
import cats.effect.Sync
import org.openqa.selenium.WebDriver.{ImeHandler, Timeouts}
import org.openqa.selenium.logging.Logs
import org.openqa.selenium.{Cookie, WebDriver}
trait Option[F[_]] {
def addCookie(cookie: Cookie): F[Unit]
def deleteCookies(): F[Unit]
def deleteCookie(cookie: Cookie): F[Unit]
def deleteCookieNamed(name: String): F[Unit]
def cookieNamed(name: String): F[Cookie]
def ime: ImeHandler
def logs: Logs
def timeouts: Timeouts
def window: Window[F]
}
object Option {
def apply[F[_]: Sync](options: WebDriver.Options): Option[F] = impl.mkOption(options)
object impl {
def mkOption[F[_]: Sync](options: WebDriver.Options): Option[F] = new Option[F] {
override def addCookie(cookie: Cookie): F[Unit] =
Sync[F].delay(options.addCookie(cookie))
override def deleteCookies(): F[Unit] = Sync[F].delay(options.deleteAllCookies())
override def deleteCookie(cookie: Cookie): F[Unit] =
Sync[F].delay(options.deleteCookie(cookie))
override def deleteCookieNamed(name: String): F[Unit] =
Sync[F].delay(options.deleteCookieNamed(name))
override def cookieNamed(name: String): F[Cookie] =
Sync[F].delay(options.getCookieNamed(name))
override def ime: ImeHandler = options.ime()
override def logs: Logs = options.logs()
override def timeouts: Timeouts = options.timeouts()
override def window: Window[F] = Window[F](options.window())
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy