
com.github.pierrenodet.fs2.selenium.Navigation.scala Maven / Gradle / Ivy
The newest version!
package com.github.pierrenodet.fs2.selenium
import java.net.URL
import cats.effect.Sync
import cats.implicits._
import org.openqa.selenium.WebDriver
trait Navigation[F[_]] {
def to(url: String): F[Unit]
def to(url: URL): F[Unit] = to(url.toString)
def back(): F[Unit]
def forward(): F[Unit]
def refresh(): F[Unit]
}
object Navigation {
def apply[F[_]: Sync](navigation: WebDriver.Navigation): Navigation[F] = {
impl.mkNavigate(navigation)
}
object impl {
def mkNavigate[F[_]: Sync](navigation: WebDriver.Navigation): Navigation[F] = {
new Navigation[F] {
def to(url: String): F[Unit] =
Sync[F].delay(navigation.to(url))
def back(): F[Unit] = Sync[F].delay(navigation.back())
def forward(): F[Unit] = Sync[F].delay(navigation.forward())
def refresh(): F[Unit] = Sync[F].delay(navigation.refresh())
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy