Giter VIP home page Giter VIP logo

axafrance / webengine-dotnet Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 22.2 MB

AXA WebEngine Framework is an open-source Test Automation Framework designed to simplify the creation of test automation solutions. Makes them reliable and maintainable. Supports Web, Mobile Web, and Mobile App testing on Windows and MacOS

Home Page: https://axafrance.github.io/webengine-dotnet/

License: MIT License

CSS 3.69% C# 80.06% Gherkin 0.03% HTML 12.61% JavaScript 0.55% Batchfile 0.01% XSLT 3.05%
accessibility automated-testing automation-framework selenium test-automation test-framework

webengine-dotnet's People

Contributors

huaxing-yuan avatar josepharul82 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

webengine-dotnet's Issues

Deadlock if webdriver download fails

During the installation of a new driver, a directory is created.

If the download fails (network error etc.), the directory is not deleted. This is a problem because during the test run, the framework thinks the correct version is installed but the driver launch fails (exe not found) and it does not try to re-download it.

Advice: Do not leave a directory with an expected name if the download is not successful.

Cleanup old webdrivers

Older version of webdriver are not cleaned up, after several updates the storage starts to weigh heavily:
MicrosoftTeams-image

Advice: delete old driver versions when a newer version has successfully installed.

Support Certificate or passphrase to encrypted sensitive Test Data

Today the sensitive test data, like keys and password can be encrypted using AES with customized encryptionKey, passing either via command-line or configuration file.

To make sensitive test data more safe, It is better to support also certificate and passphrase.

Execution Time for Test Case is 0

Issue and Steps to Reproduce

  • Run a data-driven test, generate test report
  • in the report execution time for Test Case is always 0
  • in JUnit report, the execution time is also 0 (based on the value of TestCase)

Locating web elements using `relative indentification`

Problem

In some cases, the identification of web element is tough,
For example: Identify an element in a cell of table, identify an element which has no usable identifier.
In these case, maybe using relative identifier would help.

That is describing an element using another element and the relation of current element.

For example:
A textbox with in the column header and row header
A button on the same y-axis of it's label....

To achieve this we need to add "relatedElement" in "ElementDescription".

Support Desktop Selenium Grid

WebEngine Framework supports Desktop browsers running locally. Selenium Grid is only used to executed mobile/Appium based tests.

Consider support Selenium Grid for Desktop tests.

HTML Report support

Requested by some test engineers, we will work on generating HTML format reports.
So the report can be viewed without the need of Report Viewer.

Review Descriptive Object-Models (2.0)

Review descriptive object-model:

  • Use XElement to hold web elements, with actions associated.
  • WebElementDescription holds only identifiers (attributes or DOM properties)
  • Use XElement.Describe(WebElementDescription) to describe an element
  • XElement will be the base for Buttons, Checkboxes, Textboxes etc..

Support automated iFrame Processing

Issue and Steps to Reproduce

iFrame is a big barrier to web test automation:

  • Sometimes it's hard for users to "aware" whether the element is in an iFrame.
  • Switching the context between main page and iFrames are also hard to manage.

Proposition

  • WebEngine Framework would review object identification strategy, and can automatically find elements within the iFrames if possible.
  • The Framework handles context automatically.
  • Users can just write test scripts straightly.

Support declaring WebElementDescription via Attribute mode

Support declaring a WebElementDescription via attribute, the implementation is similar to Selenium Page Objects

@FindBy(how = How.CLASS_NAME, using = "classname")
private List<WebElement> singlecriterion;

In WebEngine .NET, it will be implemented with FindsByAttribute

[FindsBy(How = How.Id, Using = "element-id1")]
public WebElementDescription SubmitButton {get;set;}

Enhancement:

  • The presentation of an element is simplified for identifiable elements

Usage:

  • Supported locators can be either defined in FindsByAttribute, or via its properties
  • Use of FindsByAttribute is not mandatory
  • It is not recommended to declare WebElementDescription in both Property and Attribute.
  • If the same locator is defined in both Property and attribute, the value provided in attribute will be ignored.

Support WebDriver Options

Find a way to support passing webdriver options (e.g, incognito mode)

  • Improve BrowserFactory.GetDriver to support passing webdriver options.
  • Improve the structure of test configuration file appsettings.json to provide solution wide webdriver options for each supported browser.

[Report viewer] Afficher le nombre de cas de tests qui se trouvent dans le rapport

Issue and Steps to Reproduce

Aujourd'hui, lorsque on utilise le report viewer pour lire nos cas de tests, on a pas l'information sur le nombre de cas de tests qui se trouvent dans le rapport

Versions

Screenshots

image

Expected

ça serait trés pertinent d'afficher un le nombre de cas de tests qui se trouvent dans le rapport

Actual

on a pas l'information sur combien de cas de tests lu par le rapport

Additional Details

il serait bien d'afficher ce compteur entre le champs filtre et la case Failed

  • Installed packages:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.