Website testing using table template and BrowserTest
On this page we test retrieving record details using MusicBrainz.
This test continues where StoryboardTest left off and combines it with TableTemplateTest.
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.
First we go to the Discography page for Van Morrison.
storyboard | browser test org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: -0.001 (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 | |||
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://musicbrainz.org/set-language/en | 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 | ||
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 | 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 |
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 | 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 | ||
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 | 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 |
Then we check some entries.
table template | album details | |||||
$year= | value of | Year | in row where | Title | is | @{album} |
$releases= | value of | Releases | in row where | Title | is | @{album} |
album details | |||||||||||||||||||||||
album | year? | releases? | |||||||||||||||||||||
Astral Weeks | 1968 Test not run | 14 Test not run | |||||||||||||||||||||
| |||||||||||||||||||||||
Moondance | 1970 Test not run | >25 Test not run | |||||||||||||||||||||
|