Giter Club home page Giter Club logo

jdi-light's People

Contributors

akiofaris avatar alexarm avatar alexeygirin avatar alexkashin90 avatar andreysinelnikov avatar annav00 avatar b14ckster avatar daarklight avatar dmitriibabakaevtr avatar duyennguyen07 avatar epam-roman-iovlev avatar fwerfad avatar gbuh avatar innokentiy945 avatar kchebulaev avatar knadonenko avatar liliya-web avatar lunandrey avatar mazurk239 avatar nechepurenkon avatar newernaigil avatar obitkin avatar pnatashap avatar romaniovlev avatar stanislavdmitriev-epam avatar strrust avatar tsvetaevalex avatar valentinbodrov avatar vklonin avatar vsevolod-adrianov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jdi-light's Issues

Implement Cucumber steps for Html elements

Implement methods for Cucumber for html elements methods

See example in jdi-cucumber

  1. Create new methods for Cucumber steps (Cucumber Core) - use request from the team
  2. Implement steps for Cucumber
    2.1 Implement steps for Cucumber for Common Elements
    2.2 Implement steps for Cucumber for Complex Elements
    2.2 Implement steps for Cucumber for Composite Elements
  3. Cover steps with tests - add JDI Light Cucumber dependency

Implement Test Fail handling

While test fails we should do by default:

  1. Put in log elements Html code
  2. Highlight element on page
  3. Make a screenshot

Documentation for Setup test project

test properties
WebSettings
DriverSettings
Run jdi tests via console (Jenkins as example)
properties from mvn params console
properties from gradle params console
Before all tests (example testng)
Kill run web drivers

Remove Site entity

Add ability to init static pages in some folder / folders directly without JDISite class
scan expected folder and init static PageObjects

Documentation for Parallel test run

How to run tests in parallel with examples
Local
Use Custom Driver

Integration with thirdparty tools:
Selenium Grid
Browser Stack
Selenoid

Tips on parallel tests limitations (preconditions, independent test data)

Documentation on move from Selenium to JDI Light

Dependency change
PageFactory Init
WebElement > UIElement
List<WebElement> > WebList or List<UIElement>

Immediate profits:
Logs
Stability
Performance
Code reduction with Forms and tables
Remove Thread sleeps and waits

Documentation on Composite elements

Write documentation on all methods for
Section - This means to add different types of elements on section and validate that they are not null after Section init (via Site) and use Section (parent) locator as context

  • public WebElement
  • WebElement
  • public static WebElement
  • public TextField
  • TextField
  • public static TextField
  • extend PageObject from some BaseClass that extends Section (public class Header extends BasePage; public class BasePage extends Section); place some elements on Base Page and validate that these elements are not null
  • Create Section for IFrame with @frame annotation (use this page https://jdi-testing.github.io/jdi-light/index.html) and validate that elements in IFrame are intractable
  • Validate that Base action also work for section (like isDisplayed and all is() validations)
  • Add tests for PageObjects that not extend Section and placed on some WebPage

Form

  • Validate all form actions
  • Validate changing FILL_ACTION and GET_ACTION methods
  • Validate filters functionality
  • Add test for form with overridden fillAction() and getAction()

WebPage

  • Add @url and @title validation tests with all combinations of these annotations params (including cases where some annotations missed)
  • Add tests on all Page actions
  • Add the same tests as for Section
  • Add tests for PageObjects that not extend WebPage and placed on some Site

Add Search by custom attribute functionality

Add ability to map custom attributes to way how to search element
Add default Annotations:
@ ById -> #elName
@ ByText -> //*[text()='elName']
@ ByClass -> .elName
@ ByType -> [type='elName']
@ ByName -> [name='elName']

Documentation on move from Selenide

Dependency change
PageFactory Init
SelenideElement > UIElement
ElementsCollection > WebList or List<UIElement>

Immediate profits:
Logs
Stability
Performance
Code reduction with Forms and tables
Remove Thread sleeps and waits

Add PageFactory init tests

Add test-examples for different kinds of site initialization using PageFactory.initElements

  1. Init Site
  2. Init list of WebPages
  3. Init single WebPage
  4. Init single page with no class in extends
  5. Init list of pages with no class in extends
  6. Init two different sites
  7. Open two browsers in parallel
  8. Work with 2+ sites in parallel tabs in one browser example

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.