GithubHelp home page GithubHelp logo

selcukes / selcukes-java Goto Github PK

View Code? Open in Web Editor NEW
38.0 5.0 7.0 57.77 MB

A Test Automation Framework that can be used to test Web, Desktop, Mobile and Api applications

Home Page: https://selcukes.github.io/

License: Apache License 2.0

Java 99.68% Gherkin 0.24% JavaScript 0.08%
selenium webdriver appium testng cucumber video-recorder slack fullpage-screenshot microsoftteams webdriver-binaries

selcukes-java's People

Contributors

dependabot[bot] avatar rameshbabuprudhvi avatar renovate-bot avatar renovate[bot] 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

Watchers

 avatar  avatar  avatar  avatar  avatar

selcukes-java's Issues

Parse Excel as Map of Maps

Is your feature request related to a problem? Please describe.
Parse Excel as Map of Maps

Describe the solution you'd like

  • Create a method to parse excel as Map of Maps in ExcelMapper
  • Remove ExcelReader class from Excel runner module
  • Use ExcelMapper Map of Maps method in ExcelUtils class in Excel runner module

AutoDetectVersion method throws IndexOutOfBoundsException

java.lang.IndexOutOfBoundsException: Index: 82, Size: 82
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at io.github.selcukes.wdb.util.VersionDetector.getCompatibleBinaryVersion(VersionDetector.java:139)
at io.github.selcukes.wdb.util.VersionDetector.getVersion(VersionDetector.java:60)
at io.github.selcukes.wdb.core.ChromeBinary.browserVersion(ChromeBinary.java:77)
at io.github.selcukes.wdb.WebDriverBinary$Builder.autoDetectVersion(WebDriverBinary.java:93)
at io.github.selcukes.tests.WebDriverBinaryTest.autoDetectBrowserVersionTest(WebDriverBinaryTest.java:120)

Dependency Dashboard

This issue provides visibility into Renovate updates and their statuses. Learn more

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.


  • Check this box to trigger a request for Renovate to run again on this repository

Upgrade to Java 11

It is required to move to Java 11 as Sonar cloud is deprecating Java 8 and scanners using them will stop functioning after October 2020.

Capture Full page screenshot using CDP

๐Ÿ‘“ What did you see?

Currently Full page screenshot for RemoteWebDriver instance are capured using java script scroll, which will overlaps header for few websites, Make this options as last option.

โœ… What did you expect to see?

Capture Full page screenshot using CDP command will helps even using RemoteWebDriver instance

๐Ÿ“ฆ Which tool/library version are you using?


Unable to capture full page screenshot

๐Ÿ‘“ What did you see?

Unable to read screen-size.js file content from class path exception thrown

โœ… What did you expect to see?

Fix FileHelper readContent method to read from jar instead of class path

๐Ÿ“ฆ Which tool/library version are you using?

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install '...' version '...'
  2. Create a file called '....'
  3. Run command '....'
  4. See error '....'

๐Ÿ“š Any additional context?


Parse XML file without Jsoup dependency

Is your feature request related to a problem? Please describe.
Parse XML file without Jsoup dependency

Describe the solution you'd like

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document doc=builder.parse(inputStream);
  • Add WebClient Response asXML

Add ReportDriver in TestLifecycle

Is your feature request related to a problem? Please describe.
Nofier and Fullpage screenshot actions not working without explicityly calling ReportDriver setter and remove action

Describe the solution you'd like
Add ReportListener and ReportDriver setter actions in TestLifecycle.

import io.github.selcukes.core.driver.DriverManager;
import io.github.selcukes.core.listener.TestLifecyclePerMethod;
import io.github.selcukes.core.page.Pages;
import io.github.selcukes.core.page.WebPage;
import io.github.selcukes.reports.ReportDriver;
import io.github.selcukes.reports.listeners.TestNGReportListener;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;

@Listeners({TestLifecyclePerMethod.class, TestNGReportListener.class})
public class HelloWeb {
    WebPage page;

    @BeforeMethod
    public void beforeMethod() {
        page = Pages.webPage();
        ReportDriver.setReportDriver(DriverManager.getDriver());
    }

    @Test
    public void hello() {
        page.open("https://www.google.com/");
        page.assertThat().title("Hello");
    }

    @AfterMethod
    public void afterMethod() {
        ReportDriver.removeDriver();
    }
}

Remove TestNG Bindings from Core and Report modules

Is your feature request related to a problem? Please describe.
Remove TestNG Bindings(listeners) from Core and Report modules.

Describe the solution you'd like
Create generic selcukes listeners which can be extended and implemented in JUnit and TestNG

Remove Selenium Grid dependency

Is your feature request related to a problem? Please describe.
Remove Selenium Grid dependency

Describe the solution you'd like
Find other way to start Selenium grid programatically

Add support for BrowserStack

Is your feature request related to a problem? Please describe.
BrowserStack Integration

Describe the solution you'd like
Run tests in BrowserStack

Assertj Integration

Is your feature request related to a problem? Please describe.
Assertj Integration

Describe the solution you'd like

  • Create new selcukes-assertions module
  • Create custom assertions for Page and Element actions
  • Replace core assertions implementations with selcukes-assertions

Upgrade to Java 17

๐Ÿค” What's the problem you're trying to solve?

I aim to enhance Selcukes by upgrading to Java 17, leveraging its features for improved performance and security. Additionally, I need to ensure compatibility with SonarQube, which mandates a minimum Java version of 17.

โœจ What's your proposed solution?

Upgrade Selcukes to utilize Java 17 features and ensure compatibility with SonarQube's minimum Java version requirement of 17.

โ› Have you considered any alternatives or workarounds?

Maintaining the current version without upgrading to Java 17 is considered, but I believe embracing the latest features aligns Selcukes with modern Java standards, enhancing its robustness.

๐Ÿ“š Any additional context?

The upgrade aligns Selcukes with the latest Java advancements, improving performance and security, while also ensuring compatibility with SonarQube's minimum Java version of 17.

Enable on demand Video Recording option for Mobile Tests

Is your feature request related to a problem? Please describe.
Enable on demand Video Recording option for Mobile Tests. Currently Selcukes Video Recoder capturing entire windows screen.

Describe the solution you'd like
Use Appium inbuilt video recoding options for Mobile tests

ConcurrentModificationException when calling MultiExcelData.getTestDataAsMap() in ExcelReader2

๐Ÿ‘“ What did you see?

When using ExcelReader2 library to read test data from multiple Excel files, calling the method MultiExcelData.getTestDataAsMap() throws a java.util.ConcurrentModificationException as shown below:

โœ… What did you expect to see?

The MultiExcelData.getTestDataAsMap() method should return the test data as a Map without throwing any exception.

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Use ExcelReader2 library to read test data from multiple Excel files.
  2. Call the MultiExcelData.getTestDataAsMap() method to retrieve the test data as a Map

๐Ÿ“š Any additional context?


Resolve Locators

Is your feature request related to a problem? Please describe.
Resolve Locators for String objects

Describe the solution you'd like
Support String object locators as follows
xpath://input
css:
id:

EventFiringDecorator instance throws OutOfMemoryError while capturing full page screenshot

webDriver = new EventFiringDecorator(eventCapture).decorate(webDriver);

java.lang.OutOfMemoryError: Java heap space
at java.desktop/java.awt.image.DataBufferByte.(DataBufferByte.java:76)
at java.desktop/java.awt.image.Raster.createInterleavedRaster(Raster.java:266)
at java.desktop/java.awt.image.BufferedImage.(BufferedImage.java:391)
at io.github.selcukes.snapshot.DefaultPageSnapshot.defaultPageScreenshot(DefaultPageSnapshot.java:71)
at io.github.selcukes.snapshot.DefaultPageSnapshot.getDefaultPageSnapshot(DefaultPageSnapshot.java:25)
at io.github.selcukes.snapshot.PageSnapshot.getFullScreenshotAs(PageSnapshot.java:38)

Add flexibility to update properties in runtime for different tests

Add flexibility to update below properties using setSystemProperty or -D option in maven

  • selcukes.excel.runner
  • selcukes.excel.suiteName
  • selcukes.excel.suiteFile
  • selcukes.extent.report
  • selcukes.features
  • selcukes.glue
  • selcukes.tags
  • selcukes.plugin
  • selcukes.reports.path
  • selcukes.timestamp.report

Add selcukes-databind module

  • Add support to parser JSON, YML files
  • Move data package from selcukes commons module
  • Add documention to parse files

Desktop Automation-Local Appium Server is not started when mobile configured as Cloud

Describe the bug

Local Appium Server is not triggred

Precondition:

windows:
serviceUrl: "http://127.0.0.1:4723"
app: "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"
mobile:
remote: true
cloud: BROWSER_STACK
platform: Android
browser: APP
serviceUrl: "http://127.0.0.1:4723"
app: "android-app.apk"

To Reproduce

WindowsDriver driver = DriverManager.createDriver(DeviceType.DESKTOP);
WinPage page = new WinPage(driver);
page.click(By.name("Nine"))

Selcukes Version
2.0.3

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.