t

org.scalatestplus.play

AllBrowsersPerSuite

trait AllBrowsersPerSuite extends TestSuiteMixin with WebBrowser with Eventually with IntegrationPatience

Trait that uses a shared test approach to enable you to run the same tests on multiple browsers in a ScalaTest Suite, where each kind of browser is started and stopped just once for the whole Suite.

Note: the difference between this trait and AllBrowsersPerTest is that this trait will allow you to write tests that rely on maintaining browser state between the tests. This is a good fit for integration tests in which each test builds on actions taken by the previous tests.

This trait overrides Suite's withFixture lifecycle method to create a new WebDriver instance the first time it is needed by each test, and close it the first time it is not needed (thus allowing multiple tests to share the same browser), and overrides the tags lifecycle method to tag the shared tests so you can filter them by browser type. This trait's self-type, ServerProvider, will ensure a TestServer and Application are available to each test. The self-type will require that you mix in either GuiceOneServerPerSuite, GuiceOneServerPerTest, ConfiguredServer before you mix in this trait. Your choice among these three ServerProviders will determine the extent to which a TestServer is shared by multiple tests.

You'll need to place any tests that you want executed by multiple browsers in a sharedTests method. Because all tests in a ScalaTest Suite must have unique names, you'll need to append the browser name (available from the BrowserInfo passed to sharedTests) to each test name:

def sharedTests(browser: BrowserInfo) {
  "The blog app home page" must {
    "have the correct title " + browser.name in {
       go to (host + "index.html")
       pageTitle must be ("Awesome Blog")
    }

All tests registered via sharedTests will be registered for each desired WebDriver, as specified by the browsers field. When running, any tests for browser drivers that are unavailable on the current platform will be canceled. All tests registered under sharedTests will be tagged automatically if they end with a browser name in square brackets. For example, if a test name ends with [Firefox], it will be automatically tagged with "org.scalatest.tags.FirefoxBrowser". This will allow you can include or exclude the shared tests by browser type using ScalaTest's regular tagging feature.

You can use tagging to include or exclude browsers that you sometimes want to test with, but not always. If you never want to test with a particular browser, you can prevent tests for it from being registered at all by overriding browsers and excluding its BrowserInfo in the returned Seq. For example, to disable registration of tests for HtmlUnit, you'd write:

override lazy val browsers: IndexedSeq[BrowserInfo] =
  Vector(
    FirefoxInfo,
    SafariInfo,
    InternetExplorerInfo,
    ChromeInfo
  )

Note that this trait can only be mixed into traits that register tests as functions, as the shared tests technique is not possible in style traits that declare tests as methods, such as org.scalatest.Spec. Attempting to do so will become a type error once we release ScalaTest 2.2.0.

package org.scalatestplus.play.examples.allbrowserspersuite

import org.scalatestplus.play._
import org.scalatestplus.play.guice._
import play.api.{Play, Application}
import play.api.inject.guice._
import play.api.routing._
import play.api.cache.ehcache.EhCacheModule

class ExampleSpec extends PlaySpec with GuiceOneServerPerSuite with AllBrowsersPerSuite {

  // Override fakeApplication if you need an Application with other than
  // default parameters.
  def fakeApplication() = new GuiceApplicationBuilder()
    .disable[EhCacheModule]
    .configure("foo" -> "bar")
    .router(TestRoutes.router)
    .build()

  // Place tests you want run in different browsers in the `sharedTests` method:
  def sharedTests(browser: BrowserInfo) = {

    "The AllBrowsersPerSuite trait" must {
      "provide a web driver " + browser.name in {
        go to ("http://localhost:" + port + "/testing")
        pageTitle mustBe "Test Page"
        click on find(name("b")).value
        eventually { pageTitle mustBe "scalatest" }
      }
    }
  }

  // Place tests that don't need a WebDriver outside the `sharedTests` method
  // in the constructor, the usual place for tests in a `PlaySpec`
  "The AllBrowsersPerSuite trait" must {
    "provide an Application" in {
      app.configuration.getOptional[String]("foo") mustBe Some("bar")
    }
    "make the Application available implicitly" in {
      def getConfig(key: String)(implicit app: Application) = app.configuration.getOptional[String](key)
      getConfig("foo") mustBe Some("bar")
    }
    "provide an http endpoint" in {
      runningServer.endpoints.httpEndpoint must not be empty
    }
    "provide an actual running server" in {
      import java.net._
      val url = new URL("http://localhost:" + port + "/boum")
      val con = url.openConnection().asInstanceOf[HttpURLConnection]
      try con.getResponseCode mustBe 404
      finally con.disconnect()
    }
  }
}

Here's how the output would look if you ran the above test class in sbt on a platform that did not support Selenium drivers for Internet Explorer or Chrome:

> test-only *allbrowserspersharedsuite*
[info] ExampleSpec:
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [Firefox]
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [Safari]
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [InternetExplorer] !!! CANCELED !!!
[info]   Was unable to create a Selenium InternetExplorerDriver on this platform. (AllBrowsersPerSuite.scala:257)
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [Chrome] !!! CANCELED !!!
[info]   Was unable to create a Selenium ChromeDriver on this platform. (AllBrowsersPerSuite.scala:257)
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [HtmlUnit]
[info] The AllBrowsersPerSuite trait
[info] - must provide a Application
[info] - must make the Application available implicitly
[info] - must start the Application
[info] - must provide the port
[info] - must provide an actual running server

Because the shared tests will be tagged according to browser, you can include or exclude tests based on the browser they use. For example, here's how the output would look if you ran the above test class with sbt and ask to include only Firefox:

> test-only *allbrowserspersharedtest* -- -n org.scalatest.tags.FirefoxBrowser
[info] ExampleSpec:
[info] The AllBrowsersPerSuite trait
[info] - must provide a web driver [Firefox]
[info] The AllBrowsersPerSuite trait
[info] The AllBrowsersPerSuite trait
[info] The AllBrowsersPerSuite trait
[info] The AllBrowsersPerSuite trait
[info] The AllBrowsersPerSuite trait

Self Type
AllBrowsersPerSuite with TestSuite with ServerProvider
Source
AllBrowsersPerSuite.scala
Linear Supertypes
IntegrationPatience, Eventually, PatienceConfiguration, AbstractPatienceConfiguration, ScaledTimeSpans, WebBrowser, TestSuiteMixin, SuiteMixin, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AllBrowsersPerSuite
  2. IntegrationPatience
  3. Eventually
  4. PatienceConfiguration
  5. AbstractPatienceConfiguration
  6. ScaledTimeSpans
  7. WebBrowser
  8. TestSuiteMixin
  9. SuiteMixin
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final class ActiveElementTarget extends SwitchTarget[Element]
    Definition Classes
    WebBrowser
  2. final class AlertTarget extends SwitchTarget[Alert]
    Definition Classes
    WebBrowser
  3. final class Checkbox extends Element
    Definition Classes
    WebBrowser
  4. case class ClassNameQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  5. final class ColorField extends ValueElement
    Definition Classes
    WebBrowser
  6. class CookiesNoun extends AnyRef
    Definition Classes
    WebBrowser
  7. case class CssSelectorQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  8. final class DateField extends ValueElement
    Definition Classes
    WebBrowser
  9. final class DateTimeField extends ValueElement
    Definition Classes
    WebBrowser
  10. final class DateTimeLocalField extends ValueElement
    Definition Classes
    WebBrowser
  11. final class DefaultContentTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  12. case class Dimension extends Product with Serializable
    Definition Classes
    WebBrowser
  13. sealed trait Element extends AnyRef
    Definition Classes
    WebBrowser
  14. final class EmailField extends ValueElement
    Definition Classes
    WebBrowser
  15. final class FrameElementTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  16. final class FrameIndexTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  17. final class FrameNameOrIdTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  18. final class FrameWebElementTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  19. case class IdQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  20. case class LinkTextQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  21. final class MonthField extends ValueElement
    Definition Classes
    WebBrowser
  22. class MultiSel extends Element
    Definition Classes
    WebBrowser
  23. class MultiSelOptionSeq extends IndexedSeq[String]
    Definition Classes
    WebBrowser
  24. case class NameQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  25. final class NumberField extends ValueElement
    Definition Classes
    WebBrowser
  26. case class PartialLinkTextQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  27. final class PasswordField extends ValueElement
    Definition Classes
    WebBrowser
  28. final case class PatienceConfig extends Product with Serializable
    Definition Classes
    AbstractPatienceConfiguration
  29. case class Point extends Product with Serializable
    Definition Classes
    WebBrowser
  30. sealed trait Query extends Product with Serializable
    Definition Classes
    WebBrowser
  31. final class RadioButton extends Element
    Definition Classes
    WebBrowser
  32. final class RadioButtonGroup extends AnyRef
    Definition Classes
    WebBrowser
  33. final class RangeField extends ValueElement
    Definition Classes
    WebBrowser
  34. final class SearchField extends ValueElement
    Definition Classes
    WebBrowser
  35. class SingleSel extends Element
    Definition Classes
    WebBrowser
  36. sealed abstract class SwitchTarget[T] extends AnyRef
    Definition Classes
    WebBrowser
  37. case class TagNameQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser
  38. final class TelField extends ValueElement
    Definition Classes
    WebBrowser
  39. final class TextArea extends ValueElement
    Definition Classes
    WebBrowser
  40. final class TextField extends ValueElement
    Definition Classes
    WebBrowser
  41. final class TimeField extends ValueElement
    Definition Classes
    WebBrowser
  42. final class UrlField extends ValueElement
    Definition Classes
    WebBrowser
  43. trait ValueElement extends Element
    Definition Classes
    WebBrowser
  44. final class WeekField extends ValueElement
    Definition Classes
    WebBrowser
  45. final class WindowTarget extends SwitchTarget[WebDriver]
    Definition Classes
    WebBrowser
  46. final class WrappedCookie extends AnyRef
    Definition Classes
    WebBrowser
  47. case class XPathQuery extends Query with Product with Serializable
    Definition Classes
    WebBrowser

Abstract Value Members

  1. abstract def expectedTestCount(filter: Filter): Int
    Definition Classes
    SuiteMixin
  2. abstract def nestedSuites: IndexedSeq[Suite]
    Definition Classes
    SuiteMixin
  3. abstract def rerunner: Option[String]
    Definition Classes
    SuiteMixin
  4. abstract def run(testName: Option[String], args: Args): Status
    Definition Classes
    SuiteMixin
  5. abstract def runNestedSuites(args: Args): Status
    Attributes
    protected
    Definition Classes
    SuiteMixin
  6. abstract def runTest(testName: String, args: Args): Status
    Attributes
    protected
    Definition Classes
    SuiteMixin
  7. abstract def sharedTests(browser: BrowserInfo): Unit

    Registers tests "shared" by multiple browsers.

    Registers tests "shared" by multiple browsers.

    Implement this method by placing tests you wish to run for multiple browsers. This method will be called during the initialization of this trait once for each browser whose BrowserInfo appears in the IndexedSeq referenced from the browsers field.

    Make sure you append browser.name to each test declared in sharedTests, to ensure they all have unique names. Here's an example:

    def sharedTests(browser: BrowserInfo) {
      "The blog app home page" must {
        "have the correct title " + browser.name in {
           go to (host + "index.html")
           pageTitle must be ("Awesome Blog")
        }
    

    If you don't append browser.name to each test name you'll likely be rewarded with a DuplicateTestNameException when you attempt to run the suite.

    browser

    the passed in BrowserInfo instance

  8. abstract val styleName: String
    Definition Classes
    SuiteMixin
  9. abstract def suiteId: String
    Definition Classes
    SuiteMixin
  10. abstract def suiteName: String
    Definition Classes
    SuiteMixin
  11. abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
    Definition Classes
    SuiteMixin
  12. abstract def testNames: Set[String]
    Definition Classes
    SuiteMixin

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val activeElement: (AllBrowsersPerSuite.this)#ActiveElementTarget
    Definition Classes
    WebBrowser
  5. def addCookie(name: String, value: String, path: String, expiry: Date, domain: String, secure: Boolean)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  6. val alertBox: (AllBrowsersPerSuite.this)#AlertTarget
    Definition Classes
    WebBrowser
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. lazy val browsers: IndexedSeq[BrowserInfo]

    Info for available browsers.

    Info for available browsers. Override to add in custom BrowserInfo implementations.

    Attributes
    protected
  9. def captureTo(fileName: String)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  10. def checkbox(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#Checkbox
    Definition Classes
    WebBrowser
  11. def checkbox(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#Checkbox
    Definition Classes
    WebBrowser
  12. lazy val chromeDriverService: ChromeDriverService

    Method to provide ChromeDriverService for creating ChromeDriver, you can override this method to provide a customized instance of ChromeDriverService

    Method to provide ChromeDriverService for creating ChromeDriver, you can override this method to provide a customized instance of ChromeDriverService

    returns

    an instance of ChromeDriverService

    Attributes
    protected
  13. lazy val chromeOptions: ChromeOptions

    Method to provide ChromeOptions for creating ChromeDriver, you can override this method to provide a customized instance of ChromeOptions

    Method to provide ChromeOptions for creating ChromeDriver, you can override this method to provide a customized instance of ChromeOptions

    returns

    an instance of ChromeOptions

    Attributes
    protected
  14. def className(className: String): (AllBrowsersPerSuite.this)#ClassNameQuery
    Definition Classes
    WebBrowser
  15. def clickOn(element: (AllBrowsersPerSuite.this)#Element): Unit
    Definition Classes
    WebBrowser
  16. def clickOn(queryString: String)(implicit driver: WebDriver, pos: Position): Unit
    Definition Classes
    WebBrowser
  17. def clickOn(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  18. def clickOn(element: WebElement): Unit
    Definition Classes
    WebBrowser
  19. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  20. def close()(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  21. def colorField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#ColorField
    Definition Classes
    WebBrowser
  22. def colorField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#ColorField
    Definition Classes
    WebBrowser
  23. def cookie(name: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#WrappedCookie
    Definition Classes
    WebBrowser
  24. val cookies: (AllBrowsersPerSuite.this)#CookiesNoun
    Definition Classes
    WebBrowser
  25. def cssSelector(cssSelector: String): (AllBrowsersPerSuite.this)#CssSelectorQuery
    Definition Classes
    WebBrowser
  26. def currentUrl(implicit driver: WebDriver): String
    Definition Classes
    WebBrowser
  27. def dateField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateField
    Definition Classes
    WebBrowser
  28. def dateField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateField
    Definition Classes
    WebBrowser
  29. def dateTimeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateTimeField
    Definition Classes
    WebBrowser
  30. def dateTimeField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateTimeField
    Definition Classes
    WebBrowser
  31. def dateTimeLocalField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateTimeLocalField
    Definition Classes
    WebBrowser
  32. def dateTimeLocalField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#DateTimeLocalField
    Definition Classes
    WebBrowser
  33. val defaultContent: (AllBrowsersPerSuite.this)#DefaultContentTarget
    Definition Classes
    WebBrowser
  34. def deleteAllCookies()(implicit driver: WebDriver, pos: Position): Unit
    Definition Classes
    WebBrowser
  35. def deleteCookie(name: String)(implicit driver: WebDriver, pos: Position): Unit
    Definition Classes
    WebBrowser
  36. def emailField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#EmailField
    Definition Classes
    WebBrowser
  37. def emailField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#EmailField
    Definition Classes
    WebBrowser
  38. def enter(value: String)(implicit driver: WebDriver, pos: Position): Unit
    Definition Classes
    WebBrowser
  39. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  40. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  41. def eventually[T](fun: ⇒ T)(implicit config: (AllBrowsersPerSuite.this)#PatienceConfig, pos: Position): T
    Definition Classes
    Eventually
  42. def eventually[T](interval: Interval)(fun: ⇒ T)(implicit config: (AllBrowsersPerSuite.this)#PatienceConfig, pos: Position): T
    Definition Classes
    Eventually
  43. def eventually[T](timeout: Timeout)(fun: ⇒ T)(implicit config: (AllBrowsersPerSuite.this)#PatienceConfig, pos: Position): T
    Definition Classes
    Eventually
  44. def eventually[T](timeout: Timeout, interval: Interval)(fun: ⇒ T)(implicit pos: Position): T
    Definition Classes
    Eventually
  45. def executeAsyncScript(script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
    Definition Classes
    WebBrowser
  46. def executeScript[T](script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
    Definition Classes
    WebBrowser
  47. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  48. def find(queryString: String)(implicit driver: WebDriver): Option[(AllBrowsersPerSuite.this)#Element]
    Definition Classes
    WebBrowser
  49. def find(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver): Option[(AllBrowsersPerSuite.this)#Element]
    Definition Classes
    WebBrowser
  50. def findAll(queryString: String)(implicit driver: WebDriver): Iterator[(AllBrowsersPerSuite.this)#Element]
    Definition Classes
    WebBrowser
  51. def findAll(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver): Iterator[(AllBrowsersPerSuite.this)#Element]
    Definition Classes
    WebBrowser
  52. lazy val firefoxOptions: FirefoxOptions

    Method to provide FirefoxOptions for creating FirefoxDriver, you can override this method to provide a customized instance of FirefoxOptions

    Method to provide FirefoxOptions for creating FirefoxDriver, you can override this method to provide a customized instance of FirefoxOptions

    returns

    an instance of FirefoxOptions

    Attributes
    protected
  53. lazy val firefoxProfile: FirefoxProfile

    Method to provide FirefoxProfile for creating FirefoxDriver, you can override this method to provide a customized instance of FirefoxProfile

    Method to provide FirefoxProfile for creating FirefoxDriver, you can override this method to provide a customized instance of FirefoxProfile

    returns

    an instance of FirefoxProfile

    Attributes
    protected
  54. def frame(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#FrameWebElementTarget
    Definition Classes
    WebBrowser
  55. def frame(element: (AllBrowsersPerSuite.this)#Element): (AllBrowsersPerSuite.this)#FrameElementTarget
    Definition Classes
    WebBrowser
  56. def frame(element: WebElement): (AllBrowsersPerSuite.this)#FrameWebElementTarget
    Definition Classes
    WebBrowser
  57. def frame(nameOrId: String): (AllBrowsersPerSuite.this)#FrameNameOrIdTarget
    Definition Classes
    WebBrowser
  58. def frame(index: Int): (AllBrowsersPerSuite.this)#FrameIndexTarget
    Definition Classes
    WebBrowser
  59. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  60. def goBack()(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  61. def goForward()(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  62. def goTo(page: Page)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  63. def goTo(url: String)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  64. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  65. def id(elementId: String): (AllBrowsersPerSuite.this)#IdQuery
    Definition Classes
    WebBrowser
  66. def implicitlyWait(timeout: Span)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  67. def interval(value: Span): Interval
    Definition Classes
    PatienceConfiguration
  68. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  69. def isScreenshotSupported(implicit driver: WebDriver): Boolean
    Definition Classes
    WebBrowser
  70. def linkText(linkText: String): (AllBrowsersPerSuite.this)#LinkTextQuery
    Definition Classes
    WebBrowser
  71. def monthField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#MonthField
    Definition Classes
    WebBrowser
  72. def monthField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#MonthField
    Definition Classes
    WebBrowser
  73. def multiSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#MultiSel
    Definition Classes
    WebBrowser
  74. def multiSel(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#MultiSel
    Definition Classes
    WebBrowser
  75. def name(elementName: String): (AllBrowsersPerSuite.this)#NameQuery
    Definition Classes
    WebBrowser
  76. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  77. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  78. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  79. def numberField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#NumberField
    Definition Classes
    WebBrowser
  80. def numberField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#NumberField
    Definition Classes
    WebBrowser
  81. def pageSource(implicit driver: WebDriver): String
    Definition Classes
    WebBrowser
  82. def pageTitle(implicit driver: WebDriver): String
    Definition Classes
    WebBrowser
  83. def partialLinkText(partialLinkText: String): (AllBrowsersPerSuite.this)#PartialLinkTextQuery
    Definition Classes
    WebBrowser
  84. implicit val patienceConfig: (AllBrowsersPerSuite.this)#PatienceConfig
    Definition Classes
    IntegrationPatience → AbstractPatienceConfiguration
  85. def pressKeys(value: String)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  86. def pwdField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#PasswordField
    Definition Classes
    WebBrowser
  87. def pwdField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#PasswordField
    Definition Classes
    WebBrowser
  88. def quit()(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  89. def radioButton(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#RadioButton
    Definition Classes
    WebBrowser
  90. def radioButton(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#RadioButton
    Definition Classes
    WebBrowser
  91. def radioButtonGroup(groupName: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#RadioButtonGroup
    Definition Classes
    WebBrowser
  92. def rangeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#RangeField
    Definition Classes
    WebBrowser
  93. def rangeField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#RangeField
    Definition Classes
    WebBrowser
  94. def reloadPage()(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  95. def runTests(testName: Option[String], args: Args): Status

    Invokes super.runTests, ensuring that the currently installed WebDriver (returned by webDriver) is closed, if necessary.

    Invokes super.runTests, ensuring that the currently installed WebDriver (returned by webDriver) is closed, if necessary. For more information on how this behavior fits into the big picture, see the documentation for the withFixture method.

    testName

    an optional name of one test to run. If None, all relevant tests should be run. I.e., None acts like a wildcard that means run all relevant tests in this Suite.

    args

    the Args for this run

    returns

    a Status object that indicates when all tests and nested suites started by this method have completed, and whether or not a failure occurred.

    Definition Classes
    AllBrowsersPerSuite → SuiteMixin
  96. final def scaled(span: Span): Span
    Definition Classes
    ScaledTimeSpans
  97. def searchField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#SearchField
    Definition Classes
    WebBrowser
  98. def searchField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#SearchField
    Definition Classes
    WebBrowser
  99. def setCaptureDir(targetDirPath: String): Unit
    Definition Classes
    WebBrowser
  100. def setScriptTimeout(timeout: Span)(implicit driver: WebDriver): Unit
    Definition Classes
    WebBrowser
  101. def singleSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#SingleSel
    Definition Classes
    WebBrowser
  102. def singleSel(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#SingleSel
    Definition Classes
    WebBrowser
  103. def spanScaleFactor: Double
    Definition Classes
    ScaledTimeSpans
  104. def submit()(implicit driver: WebDriver, pos: Position): Unit
    Definition Classes
    WebBrowser
  105. def switchTo[T](target: (AllBrowsersPerSuite.this)#SwitchTarget[T])(implicit driver: WebDriver, pos: Position): T
    Definition Classes
    WebBrowser
  106. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  107. def tagName(tagName: String): (AllBrowsersPerSuite.this)#TagNameQuery
    Definition Classes
    WebBrowser
  108. def tags: Map[String, Set[String]]

    Automatically tag browser tests with browser tags based on the test name: if a test ends in a browser name in square brackets, it will be tagged as using that browser.

    Automatically tag browser tests with browser tags based on the test name: if a test ends in a browser name in square brackets, it will be tagged as using that browser. For example, if a test name ends in [Firefox], it will be tagged with org.scalatest.tags.FirefoxBrowser. The browser tags will be merged with tags returned from super.tags, so no existing tags will be lost when the browser tags are added.

    returns

    super.tags with additional browser tags added for any browser-specific tests

    Definition Classes
    AllBrowsersPerSuite → SuiteMixin
  109. def telField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TelField
    Definition Classes
    WebBrowser
  110. def telField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TelField
    Definition Classes
    WebBrowser
  111. def textArea(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TextArea
    Definition Classes
    WebBrowser
  112. def textArea(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TextArea
    Definition Classes
    WebBrowser
  113. def textField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TextField
    Definition Classes
    WebBrowser
  114. def textField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TextField
    Definition Classes
    WebBrowser
  115. def timeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TimeField
    Definition Classes
    WebBrowser
  116. def timeField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#TimeField
    Definition Classes
    WebBrowser
  117. def timeout(value: Span): Timeout
    Definition Classes
    PatienceConfiguration
  118. def toString(): String
    Definition Classes
    AnyRef → Any
  119. def urlField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#UrlField
    Definition Classes
    WebBrowser
  120. def urlField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#UrlField
    Definition Classes
    WebBrowser
  121. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  122. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  123. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  124. implicit def webDriver: WebDriver

    Implicit method to get the WebDriver for the current test.

  125. def weekField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#WeekField
    Definition Classes
    WebBrowser
  126. def weekField(query: (AllBrowsersPerSuite.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerSuite.this)#WeekField
    Definition Classes
    WebBrowser
  127. def window(nameOrHandle: String): (AllBrowsersPerSuite.this)#WindowTarget
    Definition Classes
    WebBrowser
  128. def windowHandle(implicit driver: WebDriver): String
    Definition Classes
    WebBrowser
  129. def windowHandles(implicit driver: WebDriver): Set[String]
    Definition Classes
    WebBrowser
  130. def withFixture(test: (AllBrowsersPerSuite.this)#NoArgTest): Outcome

    Inspects the current test name and if it ends with the name of one of the BrowserInfos mentioned in the browsers IndexedSeq; if so, and a WebDriver of that type is already installed and being returned by webDriver, does nothing so that the current test can reuse the same browser used by the previous test; otherwise, closes the currently installed WebDriver, if necessary, and creates a new web driver by invoking createWebDriver on that BrowserInfo and, unless it is an UnavailableDriver, installs it so it will be returned by webDriver during the test.

    Inspects the current test name and if it ends with the name of one of the BrowserInfos mentioned in the browsers IndexedSeq; if so, and a WebDriver of that type is already installed and being returned by webDriver, does nothing so that the current test can reuse the same browser used by the previous test; otherwise, closes the currently installed WebDriver, if necessary, and creates a new web driver by invoking createWebDriver on that BrowserInfo and, unless it is an UnavailableDriver, installs it so it will be returned by webDriver during the test. (If the driver is unavailable on the host platform, the createWebDriver method will return UnavailableDriver, and this withFixture implementation will cancel the test automatically.) If the current test name does not end in a browser name, this withFixture method closes the currently installed WebDriver, if necessary, and installs BrowserInfo.UnneededDriver as the driver to be returned by webDriver during the test. If the test is not canceled because of an unavailable driver, this withFixture method invokes super.withFixture.

    Note that unlike AllBrowsersPerTest, this trait's withFixture method does not ensure that the WebDriver is closed after super.withFixture returns. Instead, this trait will close the currently installed WebDriver only when it needs to replace the currently installed driver with a new one. This just-in-time approach to closing WebDrivers is how this trait allows its shared tests to reuse the same browser, but will at the end of the day, leave the last WebDriver unclosed after withFixture returns for the last time. This last-used WebDriver will be closed, if necessary, by runTests instead.

    test

    the no-arg test function to run with a fixture

    returns

    the Outcome of the test execution

    Definition Classes
    AllBrowsersPerSuite → TestSuiteMixin
  131. def withScreenshot[T](fun: ⇒ T)(implicit driver: WebDriver): T
    Definition Classes
    WebBrowser
  132. def xpath(xpath: String): (AllBrowsersPerSuite.this)#XPathQuery
    Definition Classes
    WebBrowser

Inherited from IntegrationPatience

Inherited from Eventually

Inherited from PatienceConfiguration

Inherited from AbstractPatienceConfiguration

Inherited from ScaledTimeSpans

Inherited from WebBrowser

Inherited from TestSuiteMixin

Inherited from SuiteMixin

Inherited from AnyRef

Inherited from Any

Ungrouped