Website testing using BrowserTest
On this page we test retrieving some information from AllMusic.
To do this we use a Slim script table[?] driving the Java class BrowserTest (which uses Selenium).
This class allows us to specify what we want to do using a web browser, by the (end user visible) texts on screen. We don't need to specify any HTML code or write any custom Java logic. By only using the texts visible on screen we only need to change the script if the site's interaction design changes, but not for changes in HTML structure, element naming or styling.
The configuration of Selenium (i.e. which browser to use) and starting the browser session is done in the SuiteSetup[?]. Which allows this configuration to be shared between tests. Closing the browser is done in SuiteTearDown, which happens after all tests are completed.
script | browser test org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: -0.002 (Session info: chrome=80.0.3987.87) (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Windows NT 10.0.10586 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-1055-gcp', java.version: '1.8.0_242' Driver info: org.openqa.selenium.remote.RemoteWebDriver Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 80.0.3987.16 (320f6526c1632..., userDataDir: C:\Users\ADMINI~1\AppData\L...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:49760}, handlesAlerts: true, hasMetadata: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 80.0.3987.87, webStorageEnabled: true, webdriver.remote.sessionid: 74ed0e4e6eb242638abd370a507...} Session ID: 74ed0e4e6eb242638abd370a507c4669 | ||||||
note | all music loads a lot of slow ads, we don't want to wait on those | ||||||
set continue if ready state interactive No Method setContinueIfReadyStateInteractive[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | true | ||||||
open No Method open[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | https://www.allmusic.com | ||||||
show No Method clickIfAvailable[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | click if available | I accept | |||||
enter No Method enterAs[2] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | Van Morrison | as | Search | ||||
press No Method press[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | enter | ||||||
click No Method click[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | Van Morrison | ||||||
show No Method takeScreenshot[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | take screenshot | overview | |||||
click No Method click[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | Discography | ||||||
check | page title | Van Morrison | Album Discography | AllMusic No Method pageTitle[0] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | |||||
show No Method takeScreenshot[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | take screenshot | discography | |||||
check | value of | Year | in row where | Album | is | Astral Weeks | 1968 No Method valueOfInRowWhereIs[3] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean |
note | close popup, if shown | ||||||
show No Method clickIfAvailable[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | click if available | X | |||||
note | scroll top of discography on screen | ||||||
scroll to No Method scrollTo[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | Filter Discography By | ||||||
click No Method click[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | Astral Weeks | ||||||
show No Method takeScreenshot[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | take screenshot | album | |||||
click No Method click[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | click to embiggen | ||||||
wait for cover to appear | |||||||
wait | 1 | seconds | |||||
show No Method takeScreenshot[1] in class nl.hsac.fitnesse.fixture.slim.web.LayoutTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearValue(java.lang.String) -> boolean clearValues() -> void copyValuesFrom(java.util.Map) -> void equals(java.lang.Object) -> boolean excludedTags() -> interface java.util.List expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getOverallReportLink() -> class java.lang.String globalValue(java.lang.String) -> class java.lang.String hashCode() -> int includedTags() -> interface java.util.List layoutCheckMessages() -> class java.lang.Object notify() -> void notifyAll() -> void passedSpecCount() -> int repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long reset() -> void set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setExcludedTags(java.util.List) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIncludedTags(java.util.List) -> void setIntValueFor(int, java.lang.String) -> void setLayoutCheckName(java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void specErrorCount() -> int specWarningCount() -> int timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object verifiedSpecCount() -> int verifyLayoutUsing(java.lang.String) -> class java.lang.String wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean | take screenshot | cover |
When multiple similar sequences of steps are needed a script can be generalized using a scenario, which is show in ScenarioTest.
To make test more readable, maintainable and powerful we can also create custom subclasses of BrowserTest. This is shown in CustomFixtureTest.