Hi all,
The file SignUp.md has two examples
- First scenario is about signup and login flow (goTo SignUp -> goTo Login -> login -> HomePage)
- The second scenario is about verify the error message ONLY on SignUp page(e.g. enter incorrect format, or submit without required fields...)
Let me give a brief of authentication flow:After login, the page stores authen state in the browser session.
However, when the first scenario #### [Example](- "create account and sees On-boarding process") got done, the web browser was still keeping session and local storage; therefore, when the second scenario was running, the signUp page doesn't load but the Homepage of the logged user in first scenario.
I would like to ask is there any way to setUp clearLocalStorage/session on Fixture file ? I tried few ways as below, but got error
```
@BeforeExample
public void clearLocalStorage(){
LocalStorage localStorage = ((WebStorage) this.getBrowser().getDriver()).getLocalStorage();
localStorage.clear();
}
```
==================
Error
03-07-2021 13:51:39.969 INFO c.r.ui.fixture.SignUpFixture - Starting example create account and sees On-boarding process for test fixture cypress.realworldapp.ui.fixture.SignUpFixture
03-07-2021 13:51:39.972 INFO c.r.ui.fixture.SignUpFixture - ---- Clear local storage ----
03-07-2021 13:51:39.972 DEBUG o.c.cubano.driver.web.Browser - Starting browser
03-07-2021 13:51:40.304 DEBUG i.g.b.wdm.cache.ResolutionCache - Resolution chrome=91 in cache (valid until 14:16:01 03/07/2021 ICT)
03-07-2021 13:51:40.306 DEBUG i.g.b.wdm.cache.ResolutionCache - Resolution chrome91=91.0.4472.101 in cache (valid until 16:49:06 03/07/2021 ICT)
03-07-2021 13:51:40.307 INFO i.g.bonigarcia.wdm.WebDriverManager - Using chromedriver 91.0.4472.101 (resolved driver for Chrome 91)
03-07-2021 13:51:40.310 TRACE i.g.b.wdm.cache.CacheHandler - Checking if chromedriver exists in cache
03-07-2021 13:51:40.326 TRACE i.g.b.wdm.cache.CacheHandler - Filter cache by chromedriver -- input list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver, /Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.19/chromedriver, /Users/qa/.cache/selenium/geckodriver/mac64/0.21.0/geckodriver, /Users/qa/.cache/selenium/geckodriver/mac64/0.29.0/geckodriver, /Users/qa/.cache/selenium/resolution.properties] -- output list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver, /Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.19/chromedriver]
03-07-2021 13:51:40.327 TRACE i.g.b.wdm.cache.CacheHandler - Filter cache by 91.0.4472.101 -- input list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver, /Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.19/chromedriver] -- output list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver]
03-07-2021 13:51:40.328 TRACE i.g.b.wdm.cache.CacheHandler - Filter cache by MAC -- input list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver] -- output list [/Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver]
03-07-2021 13:51:40.329 DEBUG i.g.bonigarcia.wdm.WebDriverManager - Driver chromedriver 91.0.4472.101 found in cache
03-07-2021 13:51:40.330 INFO i.g.bonigarcia.wdm.WebDriverManager - Exporting webdriver.chrome.driver as /Users/qa/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver
Starting ChromeDriver 91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs/branch-heads/4472@{#1462}) on port 37883
Only local connections are allowed.
ChromeDriver was started successfully.
Jul 03, 2021 1:51:41 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
03-07-2021 13:51:41.935 ERROR o.c.e.storyboard.StoryboardListener - Exception thrown while evaluating expression 'create account and sees On-boarding process':
class org.openqa.selenium.support.events.EventFiringWebDriver cannot be cast to class org.openqa.selenium.html5.WebStorage (org.openqa.selenium.support.events.EventFiringWebDriver and org.openqa.selenium.html5.WebStorage are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.openqa.selenium.support.events.EventFiringWebDriver cannot be cast to class org.openqa.selenium.html5.WebStorage (org.openqa.selenium.support.events.EventFiringWebDriver and org.openqa.selenium.html5.WebStorage are in unnamed module of loader 'app')
at cypress.realworldapp.ui.fixture.SignUpFixture.clearLocalStorage(SignUpFixture.java:18)
org.concordion.internal.FailFastException: An exception was thrown in a @FailFast fixture
==============================
## Feature: Sign up
In order to work on web application
As a new client
I want to create an account by myself to serve my purposes
## Acceptance Criteria
As a new customer, I want to create an account by myself to login to the system
### AC1: Create new banking account
Submitting essential and valid information on SignUp page, user could log-in to the
system properly and encounters the On-boarding dialog.
#### [Example](- "create account and sees On-boarding process")
<div>
<p concordion:execute="signUpWorkFlow(#fullName, #userName, #password, #confirmPassword)">
**Given** [Katy Perry](- "#fullName") registered essential and valid information on Signup page
|User Name | Password|Confirmed Password|
|----|----|---|
|<span concordion:set="#userName">katy.perry</span>|<span concordion:set="#password">12345678x@X</span>|<span concordion:set="#confirmPassword">12345678x@X</span>|
**When** he logs-in to the system
**Then** the On-boarding process is [loaded properly](- "c:assert-true=verifySignUpProcessSuccessfully()")
</p>
</div>
###AC2: Provide Error Message to help users fix their incorrect information
- When users submit incorrect or missing entering required information ,
they will get corresponding error message
#### [Example](- "error messages")
|[signIn][][Full Name]| [Username][]| [Password][] | [Confirm Password][]| [Error Message](- "?=getErrorMessage()")|
|----|----|----|----|----|
|David Beckham| |12345678x@X|12345678x@X|Username is required|
||david.beckham |12345678x@X|12345678x@X|First Name is required|
|David Beckham| david.beckham|12345678x@X|12345678x@Y|Password does not match|
|David Beckham| david.beckham|123|123|Password must contain at least 4 characters|
[Full Name]: - "#fullName"
[Username]: - "#userName"
[Password]: - "#password"
[Confirm Password]: - "#confirmPassword"
[signIn]: - "signUp(#fullName, #userName, #password, #confirmPassword)"