trait AllBrowsersPerTest 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 a new browser is started before each test
that needs a browser, and stopped after.
Note: the difference between this trait and AllBrowsersPerSuite is that
AllBrowsersPerSuite
will allow you to write tests that rely on maintaining browser state between the tests. Thus, AllBrowsersPerSuite
is a good fit
for integration tests in which each test builds on actions taken by the previous tests. This trait is good if your tests
each need a brand new browser.
This trait overrides Suite
's withFixture
lifecycle method to create a new WebDriver
instance before executing each test that needs a browser, closing it after the test completes, 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
ServerProvider
s 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.allbrowserspertest import org.scalatest._ import org.scalatestplus.play._ 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 OneServerPerTest with AllBrowsersPerTest { // Override newAppForTest if you need a Application with other than non-default parameters. override def newAppForTest(testData: TestData): Application = 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 AllBrowsersPerTest 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 you want run just once outside the `sharedTests` method // in the constructor, the usual place for tests in a `PlaySpec` "The AllBrowsersPerTest trait" must { "provide a FakeApplication" in { app.configuration.getOptional[String]("foo") mustBe Some("bar") } "make the FakeApplication 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 *allbrowserspersharedtest* [info] ExampleSpec: [info] The AllBrowsersPerTest trait [info] - must provide a web driver [Firefox] [info] The AllBrowsersPerTest trait [info] - must provide a web driver [Safari] [info] The AllBrowsersPerTest trait [info] - must provide a web driver [InternetExplorer] !!! CANCELED !!! [info] Was unable to create a Selenium InternetExplorerDriver on this platform. (AllBrowsersPerTest.scala:257) [info] The AllBrowsersPerTest trait [info] - must provide a web driver [Chrome] !!! CANCELED !!! [info] Was unable to create a Selenium ChromeDriver on this platform. (AllBrowsersPerTest.scala:257) [info] The AllBrowsersPerTest trait [info] - must provide a web driver [HtmlUnit] [info] The AllBrowsersPerTest 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 AllBrowsersPerTest trait [info] - must provide a web driver [Firefox] [info] The AllBrowsersPerTest trait [info] The AllBrowsersPerTest trait [info] The AllBrowsersPerTest trait [info] The AllBrowsersPerTest trait [info] The AllBrowsersPerTest trait
- Self Type
- AllBrowsersPerTest with TestSuite with ServerProvider
- Source
- AllBrowsersPerTest.scala
- Alphabetic
- By Inheritance
- AllBrowsersPerTest
- IntegrationPatience
- Eventually
- PatienceConfiguration
- AbstractPatienceConfiguration
- ScaledTimeSpans
- WebBrowser
- TestSuiteMixin
- SuiteMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- final class ActiveElementTarget extends SwitchTarget[Element]
- Definition Classes
- WebBrowser
- final class AlertTarget extends SwitchTarget[Alert]
- Definition Classes
- WebBrowser
- final class Checkbox extends Element
- Definition Classes
- WebBrowser
- case class ClassNameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class ColorField extends ValueElement
- Definition Classes
- WebBrowser
- class CookiesNoun extends AnyRef
- Definition Classes
- WebBrowser
- case class CssSelectorQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class DateField extends ValueElement
- Definition Classes
- WebBrowser
- final class DateTimeField extends ValueElement
- Definition Classes
- WebBrowser
- final class DateTimeLocalField extends ValueElement
- Definition Classes
- WebBrowser
- final class DefaultContentTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- case class Dimension extends Product with Serializable
- Definition Classes
- WebBrowser
- sealed trait Element extends AnyRef
- Definition Classes
- WebBrowser
- final class EmailField extends ValueElement
- Definition Classes
- WebBrowser
- final class FrameElementTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameIndexTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameNameOrIdTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameWebElementTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- case class IdQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- case class LinkTextQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class MonthField extends ValueElement
- Definition Classes
- WebBrowser
- class MultiSel extends Element
- Definition Classes
- WebBrowser
- class MultiSelOptionSeq extends IndexedSeq[String]
- Definition Classes
- WebBrowser
- case class NameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class NumberField extends ValueElement
- Definition Classes
- WebBrowser
- case class PartialLinkTextQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class PasswordField extends ValueElement
- Definition Classes
- WebBrowser
- final case class PatienceConfig extends Product with Serializable
- Definition Classes
- AbstractPatienceConfiguration
- case class Point extends Product with Serializable
- Definition Classes
- WebBrowser
- sealed trait Query extends Product with Serializable
- Definition Classes
- WebBrowser
- final class RadioButton extends Element
- Definition Classes
- WebBrowser
- final class RadioButtonGroup extends AnyRef
- Definition Classes
- WebBrowser
- final class RangeField extends ValueElement
- Definition Classes
- WebBrowser
- final class SearchField extends ValueElement
- Definition Classes
- WebBrowser
- class SingleSel extends Element
- Definition Classes
- WebBrowser
- sealed abstract class SwitchTarget[T] extends AnyRef
- Definition Classes
- WebBrowser
- case class TagNameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class TelField extends ValueElement
- Definition Classes
- WebBrowser
- final class TextArea extends ValueElement
- Definition Classes
- WebBrowser
- final class TextField extends ValueElement
- Definition Classes
- WebBrowser
- final class TimeField extends ValueElement
- Definition Classes
- WebBrowser
- final class UrlField extends ValueElement
- Definition Classes
- WebBrowser
- trait ValueElement extends Element
- Definition Classes
- WebBrowser
- final class WeekField extends ValueElement
- Definition Classes
- WebBrowser
- final class WindowTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class WrappedCookie extends AnyRef
- Definition Classes
- WebBrowser
- case class XPathQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
Abstract Value Members
- abstract def expectedTestCount(filter: Filter): Int
- Definition Classes
- SuiteMixin
- abstract def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- SuiteMixin
- abstract def rerunner: Option[String]
- Definition Classes
- SuiteMixin
- abstract def run(testName: Option[String], args: Args): Status
- Definition Classes
- SuiteMixin
- abstract def runNestedSuites(args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTest(testName: String, args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTests(testName: Option[String], args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- 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 theIndexedSeq
referenced from thebrowsers
field.Make sure you append
browser.name
to each test declared insharedTests
, 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 aDuplicateTestNameException
when you attempt to run the suite.- browser
the passed in
BrowserInfo
instance
- abstract val styleName: String
- Definition Classes
- SuiteMixin
- abstract def suiteId: String
- Definition Classes
- SuiteMixin
- abstract def suiteName: String
- Definition Classes
- SuiteMixin
- abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
- Definition Classes
- SuiteMixin
- abstract def testNames: Set[String]
- Definition Classes
- SuiteMixin
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val activeElement: (AllBrowsersPerTest.this)#ActiveElementTarget
- Definition Classes
- WebBrowser
- def addCookie(name: String, value: String, path: String, expiry: Date, domain: String, secure: Boolean)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- val alertBox: (AllBrowsersPerTest.this)#AlertTarget
- Definition Classes
- WebBrowser
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- lazy val browsers: IndexedSeq[BrowserInfo]
Info for available browsers.
Info for available browsers. Override to add in custom
BrowserInfo
implementations.- Attributes
- protected
- def captureTo(fileName: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def checkbox(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#Checkbox
- Definition Classes
- WebBrowser
- def checkbox(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#Checkbox
- Definition Classes
- WebBrowser
- def className(className: String): (AllBrowsersPerTest.this)#ClassNameQuery
- Definition Classes
- WebBrowser
- def clickOn(element: (AllBrowsersPerTest.this)#Element): Unit
- Definition Classes
- WebBrowser
- def clickOn(queryString: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def clickOn(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def clickOn(element: WebElement): Unit
- Definition Classes
- WebBrowser
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def close()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def colorField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#ColorField
- Definition Classes
- WebBrowser
- def colorField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#ColorField
- Definition Classes
- WebBrowser
- def cookie(name: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WrappedCookie
- Definition Classes
- WebBrowser
- val cookies: (AllBrowsersPerTest.this)#CookiesNoun
- Definition Classes
- WebBrowser
- def cssSelector(cssSelector: String): (AllBrowsersPerTest.this)#CssSelectorQuery
- Definition Classes
- WebBrowser
- def currentUrl(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def dateField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateField
- Definition Classes
- WebBrowser
- def dateField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateField
- Definition Classes
- WebBrowser
- def dateTimeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeField
- Definition Classes
- WebBrowser
- def dateTimeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeField
- Definition Classes
- WebBrowser
- def dateTimeLocalField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeLocalField
- Definition Classes
- WebBrowser
- def dateTimeLocalField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeLocalField
- Definition Classes
- WebBrowser
- val defaultContent: (AllBrowsersPerTest.this)#DefaultContentTarget
- Definition Classes
- WebBrowser
- def deleteAllCookies()(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def deleteCookie(name: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def emailField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#EmailField
- Definition Classes
- WebBrowser
- def emailField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#EmailField
- Definition Classes
- WebBrowser
- def enter(value: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def eventually[T](fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](interval: Interval)(fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](timeout: Timeout)(fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](timeout: Timeout, interval: Interval)(fun: => T)(implicit pos: Position): T
- Definition Classes
- Eventually
- def executeAsyncScript(script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
- Definition Classes
- WebBrowser
- def executeScript[T](script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
- Definition Classes
- WebBrowser
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def find(queryString: String)(implicit driver: WebDriver): Option[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def find(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Option[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def findAll(queryString: String)(implicit driver: WebDriver): Iterator[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def findAll(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Iterator[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- lazy val firefoxProfile: FirefoxProfile
Method to provide
FirefoxProfile
for creatingFirefoxDriver
, you can override this method to provide a customized instance ofFirefoxProfile
Method to provide
FirefoxProfile
for creatingFirefoxDriver
, you can override this method to provide a customized instance ofFirefoxProfile
- returns
an instance of
FirefoxProfile
- Attributes
- protected
- def frame(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#FrameWebElementTarget
- Definition Classes
- WebBrowser
- def frame(element: (AllBrowsersPerTest.this)#Element): (AllBrowsersPerTest.this)#FrameElementTarget
- Definition Classes
- WebBrowser
- def frame(element: WebElement): (AllBrowsersPerTest.this)#FrameWebElementTarget
- Definition Classes
- WebBrowser
- def frame(nameOrId: String): (AllBrowsersPerTest.this)#FrameNameOrIdTarget
- Definition Classes
- WebBrowser
- def frame(index: Int): (AllBrowsersPerTest.this)#FrameIndexTarget
- Definition Classes
- WebBrowser
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def goBack()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goForward()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goTo(page: Page)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goTo(url: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def id(elementId: String): (AllBrowsersPerTest.this)#IdQuery
- Definition Classes
- WebBrowser
- def implicitlyWait(timeout: Span)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def interval(value: Span): Interval
- Definition Classes
- PatienceConfiguration
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isScreenshotSupported(implicit driver: WebDriver): Boolean
- Definition Classes
- WebBrowser
- def linkText(linkText: String): (AllBrowsersPerTest.this)#LinkTextQuery
- Definition Classes
- WebBrowser
- def monthField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MonthField
- Definition Classes
- WebBrowser
- def monthField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MonthField
- Definition Classes
- WebBrowser
- def multiSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MultiSel
- Definition Classes
- WebBrowser
- def multiSel(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MultiSel
- Definition Classes
- WebBrowser
- def name(elementName: String): (AllBrowsersPerTest.this)#NameQuery
- Definition Classes
- WebBrowser
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def numberField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#NumberField
- Definition Classes
- WebBrowser
- def numberField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#NumberField
- Definition Classes
- WebBrowser
- def pageSource(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def pageTitle(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def partialLinkText(partialLinkText: String): (AllBrowsersPerTest.this)#PartialLinkTextQuery
- Definition Classes
- WebBrowser
- implicit val patienceConfig: (AllBrowsersPerTest.this)#PatienceConfig
- Definition Classes
- IntegrationPatience → AbstractPatienceConfiguration
- def pressKeys(value: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def pwdField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#PasswordField
- Definition Classes
- WebBrowser
- def pwdField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#PasswordField
- Definition Classes
- WebBrowser
- def quit()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def radioButton(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButton
- Definition Classes
- WebBrowser
- def radioButton(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButton
- Definition Classes
- WebBrowser
- def radioButtonGroup(groupName: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButtonGroup
- Definition Classes
- WebBrowser
- def rangeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RangeField
- Definition Classes
- WebBrowser
- def rangeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RangeField
- Definition Classes
- WebBrowser
- def reloadPage()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- final def scaled(span: Span): Span
- Definition Classes
- ScaledTimeSpans
- def searchField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SearchField
- Definition Classes
- WebBrowser
- def searchField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SearchField
- Definition Classes
- WebBrowser
- def setCaptureDir(targetDirPath: String): Unit
- Definition Classes
- WebBrowser
- def setScriptTimeout(timeout: Span)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def singleSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SingleSel
- Definition Classes
- WebBrowser
- def singleSel(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SingleSel
- Definition Classes
- WebBrowser
- def spanScaleFactor: Double
- Definition Classes
- ScaledTimeSpans
- def submit()(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def switchTo[T](target: (AllBrowsersPerTest.this)#SwitchTarget[T])(implicit driver: WebDriver, pos: Position): T
- Definition Classes
- WebBrowser
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tagName(tagName: String): (AllBrowsersPerTest.this)#TagNameQuery
- Definition Classes
- WebBrowser
- 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 withorg.scalatest.tags.FirefoxBrowser
. The browser tags will be merged with tags returned fromsuper.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
- AllBrowsersPerTest → SuiteMixin
- def telField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TelField
- Definition Classes
- WebBrowser
- def telField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TelField
- Definition Classes
- WebBrowser
- def textArea(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextArea
- Definition Classes
- WebBrowser
- def textArea(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextArea
- Definition Classes
- WebBrowser
- def textField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextField
- Definition Classes
- WebBrowser
- def textField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextField
- Definition Classes
- WebBrowser
- def timeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TimeField
- Definition Classes
- WebBrowser
- def timeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TimeField
- Definition Classes
- WebBrowser
- def timeout(value: Span): Timeout
- Definition Classes
- PatienceConfiguration
- def toString(): String
- Definition Classes
- AnyRef → Any
- def urlField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#UrlField
- Definition Classes
- WebBrowser
- def urlField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#UrlField
- Definition Classes
- WebBrowser
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- implicit def webDriver: WebDriver
Implicit method to get the
WebDriver
for the current test. - def weekField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WeekField
- Definition Classes
- WebBrowser
- def weekField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WeekField
- Definition Classes
- WebBrowser
- def window(nameOrHandle: String): (AllBrowsersPerTest.this)#WindowTarget
- Definition Classes
- WebBrowser
- def windowHandle(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def windowHandles(implicit driver: WebDriver): Set[String]
- Definition Classes
- WebBrowser
- def withFixture(test: (AllBrowsersPerTest.this)#NoArgTest): Outcome
Inspects the current test name and if it ends with the name of one of the
BrowserInfo
s mentioned in thebrowsers
IndexedSeq
, creates a new web driver by invokingcreateWebDriver
on thatBrowserInfo
and, unless it is anUnavailableDriver
, installs it so it will be returned bywebDriver
during the test.Inspects the current test name and if it ends with the name of one of the
BrowserInfo
s mentioned in thebrowsers
IndexedSeq
, creates a new web driver by invokingcreateWebDriver
on thatBrowserInfo
and, unless it is anUnavailableDriver
, installs it so it will be returned bywebDriver
during the test. (If the driver is unavailable on the host platform, thecreateWebDriver
method will returnUnavailableDriver
, and thiswithFixture
implementation will cancel the test automatically.) If the current test name does not end in a browser name, thiswithFixture
method installsBrowserInfo.UnneededDriver
as the driver to be returned bywebDriver
during the test. If the test is not canceled because of an unavailable driver, thiswithFixture
method invokessuper.withFixture
and ensures that theWebDriver
is closed aftersuper.withFixture
returns.- test
the no-arg test function to run with a fixture
- returns
the
Outcome
of the test execution
- Definition Classes
- AllBrowsersPerTest → TestSuiteMixin
- def withScreenshot[T](fun: => T)(implicit driver: WebDriver): T
- Definition Classes
- WebBrowser
- def xpath(xpath: String): (AllBrowsersPerTest.this)#XPathQuery
- Definition Classes
- WebBrowser