Important Framework Notes
1. I need to handle in case user wants to make generic method for scenarios like: loginTestCase then user data file to send as parameters for that method
2. Make waitUntil return WebElement object
3. Need to fix waitUntil it's only check moveToElement, this is totaly wrong maaaaaaaaaaaaan
4. moveToElement inside WebElementHandler is wrong concept, we need to implement methodology to verify that element is exist on the page then we can generate healthy WebElement Object, Like: findElements().size != 0 or !findElements().isEmpty
5.

Urgent -- In Web We need to check below bugs
1. When beforeMethod fail all test cases inside same class get skipped



Most Important
01. Treat Platforms (Web, Mobile and API)
02. Implement Mobile Config methods
03. Name of virtualMobile in Platform Class
04. Mobile Framework: Implement create and launch AVD
05. Mobile Framework: Implement check for OS and Required Tools
06. Implement test data column attribute (annotation)
07. Implement random data library + insert generated data to related file (test data file)
08. Implement variables in test data files
09. Implement MobileElementBuilder for each mobile platform
10. Implement MobilePreRequisites for each mobile platform
11. Implement annotation like Page Object Model @FindBy

Missing
03. Properties File keep looping to convert keys to lower case
    We need to implement a way to make read file one time with
    static property variable
04. Config Methods isn't appear in report
05. comments for TestCaseRunner class
06. Actions method to move mouse to element
07. Implement pre-requisites in a class before start any platform check for pre-requisites for that platform then start the automation
08. Implement generate test data before starting automation (Related to company)
09. Implement in report: class name grouping it's methods
10. Implement in report: If class config fail then all test methods status should be skip not unknown
11. Add for all TestReporter methods to be printed in console too for debugging purpose

FrameworkBuilding.txt
00. #04 will be resolved once we implement wait for element with fluent wait
    04. Remove Try and catch for each Action And find away to fail the test
02. Integrate Jira
05. Framework Documentation (User Guide and Technical Doc)
06. Implement method that generate WebElement without knowing selector type
09. Implement running web with headless
10. Implement running Mobile with headless
11. Implement if beforeClass fail then skip all the class and same for all config methods
12. Implement unit test cases for framework
13. Check for all annotations in case isn't provided then system should handle null values to not be throw exception
14. Check if you print calculation of integers inside print statement like:(rowNumber + 1)
15. Why we are using checking parameter instead of adding @Parameters and default value for parameter, check implementation of BeforeTest method and browser and other parameters
16. Implement Actions and moveToElement for each selenium action
17. Fix try, catch of selenium actions so will remove parent try structure
18. BUG -- if file name in resources redundant then getAbsolutePath method will confused
19. Ability to configure baseURL over project not class or TestNG file(We need common attributes over framework)

Data Generator Implementation
1. https://www.swtestacademy.com/test-data-generation/
2. https://dzone.com/articles/generate-test-data-datafactory
3. http://www.softwaretestingmagazine.com/tools/open-source-test-data-generators/
4. https://www.udemy.com/test-data-generation-for-selenium-and-appium/learn/v4/content
5.

Important notes:
01. False in report for start virtual device of mobile
02. Read mobile params from before/after suite(and keep using up-to-date value of static variables for platform)
03. Implement validation for any value need to get from user in TestNG file
04. Implement dynamic way to know mobile type from provided app
05. Implement dynamic way to get list of devices and create them, run them for test cases from a file(We need to configure file format)
06. Close Emulator before delete it (it's a bug)
07. Revamp all ManageAndroidMobile methods and configs
08. Check required Capabilities before assign them and if anything missing fail the test all
09. Implement tracking error from classes and methods
10. Implement Strings file to remove all strings from code
11. Fix TestReporter to accept images for all methods (error, pass, fail...)
12. Add capture screen shot for mobile
13. Implement annotation for testDescription and stepDescription
14. Implement FindElementSafe
public static IWebElement FindElementSafe(this IWebDriver driver, By by)
    {
        try
        {
            return driver.FindElement(by);
        }
        catch (NoSuchElementException)
        {
            return null;
        }
    }
15. Prevent any class to use generic variable like: WebDriver, instead parse as parameter and pass the parameter from main class that will use the method
16. Apply reportStepStatus on SeleniumActions class
17. Include License for each class
18. Check AttributesConfig attributesConfig = new AttributesConfig(), It needs update on child classes with super class
19. Reduce number of dependencies that used in framework
20. Upgrade to ExtentReport 3

