question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Is it possible that MobileElement/AndroidElement/IOSElement support element description?

See original GitHub issue

Description

Hi, For more details to track the test operation/flow in test report (for example, ReportNG, ExtentsReport), is it possible that add a public String field to MobileElement/AndroidElement/IOSElement for storing the element’s description?

for example:

public class HomePageObjects {

    @iOSFindBy(id = "submit", description = "Home page - [Submit] button")
    public IOSElement submitButton;

    ...
}

public class ProfilePageObjects {

    @iOSFindBy(id = "submit", description = "Profile page - [Submit] button")
    public MobileElement submitButton;
}

so that in calling reporter’s log method in personal Appium test project:

public void click(MobileElement e) {
    e.click();
    // reportNG
    reporter.log("Click: " + e.getDescription());
}

public void clearText(MobileElement e) {
    e.clear();
    //reportNG
    reporter.log("Clear Text: " + e.getDescription());
}

public void enterText(MobileElement e, String s) {
    e.sendKeys(s);
    //reportNG
    reporter.log("Type Text: " + e.getDescription());
}

public void swipDown(MobileElement e) {
    //add code here
}

so that the test report will be more detail as mobile description supported:

Snipshot of ReportNG:

Type: ......
Swipe Down: ....
Clear Text: ...
...
Click: Home page - [Submit] button
...
Click: Profile page - [Submit] button
Test fail

Error: MobileElemet: by.id = "submit" still displayed.

tracking test report test operation flow, it is more easier to locate the it was fail after click profile page submit button, not home page submit button.

please advise.

Please describe the issue. It may be a bug description. So then please briefly descride steps which you were trying to perform and what happened instead. If there is the feature you want to see added to Appium Java client so please describe necessity of this feature and the way that it should work.

Environment

  • java client build version or git revision if you use some shapshot:
  • Appium server version or git revision if you use some shapshot:
  • Desktop OS/version used to run Appium if necessary:
  • Node.js version (unless using Appium.app|exe) or Appium CLI or Appium.app|exe:
  • Mobile platform/version under test:
  • Real device or emulator/simulator:

Details

Please provide more details, if necessary.

Code To Reproduce Issue [ Good To Have ]

Please remember that, with sample code; it’s easier to reproduce bug and much faster to fix it. You can git clone https://github.com/appium/sample-code or https://github.com/appium/sample-code/tree/master/sample-code/apps and reproduce an issue using Java and sample apps. Also you can create a gist with pasted java code sample or put it here using markdown. About markdown please read Mastering markdown and Writing on GitHub

Ecxeption stacktraces

Please create a gist with pasted stacktrace of exception thrown by java.

Link to Appium logs

Please create a gist which is a paste of your full Appium logs, and link them here. Do not paste your full Appium logs here, as it will make this issue very long and hard to read! If you are reporting a bug, always include Appium logs as linked gists! It helps to define the problem correctly and clearly.

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:11 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
HlebHalkouskicommented, May 12, 2017

@ansonliao @aldonin I found good solution. This merge make locator factory classes public and I use annotation from java-client with my custom decorator. My decorator is hybrid of Yandex HtmlElements decorator with locator factory from java-client.

elementLocatorFactory = new AppiumElementLocatorFactory(context, timeOutDuration, originalDriver, new DefaultElementByBuilder(platform, automation));' ' blockLocatorFactory = new AppiumElementLocatorFactory(context, timeOutDuration, originalDriver, new WidgetByBuilder(platform, automation));

I add Named interface for my mobile elements and set name in interceptor.

1reaction
ansonliaocommented, May 11, 2017

thanks all, I also use Yandex HtmlElements framework in my Selenium test, for Appium, I tried to extend MobileElement and finally found that many classes are private in Java-Client, it is hard to extend from Java-Client.

@HlebHalkouski @aldonin hope can hear the good news from you soon.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Pages - 12 Integrated Product Support IPS Elements - DAU
Name Contribution Type Modified DSPJ 04 06 Reference 2/13/2018 2:37 PM Enabling Fleet Management With CBM Article Reference 2/13/2018 2:35 PM MIL HDBK 1783B CHG 2...
Read more >
Integrated Product Support (IPS) - AcqNotes
Integrated Product Support (IPS) is an approach to the management and technical activities needed to influence logistics support.
Read more >
Integrated Product Support Elements - OUSD A&S
Product Support is: “The package of support functions required to field and maintain the readiness and operational capability of covered systems, ...
Read more >
New Face to the Field: AMC's division logistics support ...
AMC no longer employs brigade logistics support teams (BLST) integrated with BCTs either at home station or in the field. Instead, AMC ...
Read more >
Integrated Product Support (IPS) Elements Guidebook
B. Data Item Description (DID) Deliverables . ... best possible product support outcomes at the lowest operations and support cost.” —FY10.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found