You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+65-31Lines changed: 65 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -16,59 +16,93 @@ We use interfaces where is possible, so you can implement your own version of ta
16
16
17
17
We use Dependency Injection to simplify overriding of implementations.
18
18
19
+
### Components of solution
20
+
21
+
1. Applications component provides classes and interfaces which help us work with application and DI container. [AqualityServices](https://github.com/aquality-automation/aquality-selenium-core-dotnet/blob/master/Aquality.Selenium.Core/src/Aquality.Selenium.Core/Applications/AqualityServices.cs) can get\set service provider and application. [Startup](https://github.com/aquality-automation/aquality-selenium-core-dotnet/blob/master/Aquality.Selenium.Core/src/Aquality.Selenium.Core/Applications/Startup.cs) is needed to setup DI container.
22
+
23
+
2. Configurations component provides classes and interfaces which describe most common configurations of project.
24
+
25
+
3. Elements component describes classes and interfaces which works with UI elements.
26
+
27
+
4. Solution contains logger and support several languages, Localization and Logging components helps us to implement this.
28
+
29
+
5. Resources contains localization and project configuration in json files.
30
+
31
+
6. Utilities.
32
+
33
+
7. Waitings component contains classes and interfaces which implement some common waitings, for example, wait till condition is satisfied.
34
+
19
35
### Quick start
20
36
21
37
1. To start work with this package, simply add the nuget dependency Aquality.Selenium.Core to your project.
22
38
23
39
2. Setup DI container using Startup.cs.
24
40
25
-
The simpliest way is to create your ApplicationManager class extended from abstract ApplicationManager with the following simple signature:
41
+
The simpliest way is to create your AqualityServices class extended from abstract AqualityServices with the following simple signature:
Or, if you need to register your own services / rewrite theimplementation, youcanachieveitthisway:
59
+
If you need to register your own services / rewrite the implementation, you need override [Startup](https://github.com/aquality-automation/aquality-selenium-core-dotnet/blob/master/Aquality.Selenium.Core/src/Aquality.Selenium.Core/Applications/Startup.cs) and implement AqualityServices like in example below:
@@ -122,7 +156,7 @@ All the services could be resolved from the DI container via ServiceProvider.
122
156
```
123
157
124
158
Or create your own ElementFactory! You can extend it from Core's ElementFactory or just implement IElementFactory interface.
125
-
(Don't forget to register it in the DI container at ApplicationManager!).
159
+
(Don't forget to register it in the DI container at AqualityServices!).
126
160
127
161
6. Work with Windows/Pages/Forms according to PageObject pattern.
128
162
Create a base Form class with protected access to IApplication instance and IElementFactory (and any other needed service) via ApplicationManager. Other forms will inherit from this one with the mentioned services available. Take a look at example here:
@@ -157,13 +191,13 @@ Create a base Form class with protected access to IApplication instance and IEle
0 commit comments