All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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