Git Product home page Git Product logo

Comments (5)

DanielHarrod avatar DanielHarrod commented on May 24, 2024

Hi,

Thank you so much for reporting this issue.

Hopefully v11 has this fixed, if not it will now log the exception to the log which may help.

If that doesn't work, I may need to get the project files to and check them with the debugger.

from appteststudio.

eldad87 avatar eldad87 commented on May 24, 2024

Thank you for your replay.
I will try the new version most likely tomorrow.

Can you please recommend on how to test/automate the case I'm trying to work on?

Limitations:

  1. The town view is too large to fit the screen.
  2. In order to find a building, I need to search through the town view.
  3. The town may contain more than one of the same building (in the image above I have 5).
  4. I need to click on each one of the desired buildings and perform an actions on it (on click a new menu will open)

I would like to:

  1. Scan the entire base, or at lest the middle section only (the edges are usually left un-used)
  2. For each building found, perform the same action.
  3. To ease the process, I can group all buildings so the cluster will fit the screen and place them in a pre-defined location.

Can you advise on how to address such complex task?

from appteststudio.

DanielHarrod avatar DanielHarrod commented on May 24, 2024

Hi,

It is pretty tricky, but possible.

There are probably other ways to do this, this is what I have done in the past.
(some of the advice is in the screenshot)

Since the events are checked in order, First setup the Out of Position actions in the screenshot, then write the In position actions in the screenshot.

Put the In position actions first so that if you aren't in the right position, the out of position will move you to the correct position.
And if you are in position, you can block the out of position blocks from running.

image

Use a slower velocity when scrolling from the reference position for consistency.

If you do manage to get in a consistent pixel perfect position, more options open up such as not needing to do object searches at all. In consistent position, you could check for the indication to do an action via pixel/color and take appropriate actions. I prefer to use Object Search when the location of the object is moving around, it still might be necessary.

from appteststudio.

eldad87 avatar eldad87 commented on May 24, 2024

Thank you for your input!
Since the grid is large, the approach will work with it might be too tedious to implement.

Suggestion

  • GIven` a grid size 10x10. It requires 10 swipes to get from one side of the map to the other (top to bottom / right to left).
  • Re-usable groups of actions
  • Repeat the same action or groups of actions over an over again

Usage example:

Groups of actions
Find coordinate 0,0

  • Repeat 10 times:
    • swipe-up
    • swipe-left

Find item

  • Repeat 10 times:
    • Repeat 10 times:
      • swipe-right
      • pixel perfect search - if found break
    • swipe down

Perform desired action

  • Search for pixel perfect. If not found break
  • Perform the action

Action:

  • Find coordinate 0,0
  • Find item
  • Perform desired action

Hope it make sense.

from appteststudio.

DanielHarrod avatar DanielHarrod commented on May 24, 2024

Thanks for the suggestions, it helps a lot, many of the functions in ATS come from suggestions.

I think a high level of automation is achievable, but a simpler solution may provide better results.

A couple notes although I don't think these will help in this specific case, as I think the logic you specified above is beyond ATS can do, but there's lots of ways to automate.

1.) The [Repeats Until False], with Limit 10, could repeat something 10 x - putting on a empty event would always run 10x, the hard part about not having a check in there is it would be hard to control when not to run it. -- I don't think that's a solution. [Repeats until false] takes a screenshot and ignores [After Completion: Back to Home, Back to Parent] until the event is false or the [Limit] is met. Use of [Repeats until false] when the app wants you to click X# of times or do X# of actions, typically when there is an indication that you can't repeat anymore.

2.) Ctrl+Clicking any Event or Action and then while holding Crtl then dragging to the parent node will make a copy of the node and any children. -- I don't think that's a solution.

I played the app for about 10 min, by no means an expert, but a couple observations.

Clicking the compass (sends you to the world map), clicking back in the same location center's the view. Nice, now that's a reference point. I would make the compass check(color/point) as a Group, and place city events for each building.

Clicking on buildings centers on that building, clever placement of buildings may not even need to scroll. So if I want to check building off screen, Center on the map, click on buildings in the middle, then click on the building you want to check. Or scroll from the center.

Just basics of ATS.
Order matters, put the scripts in the order you need them to run, but not how you would play the app.
So put the popup's first, also use color point for popups. Click on the letters, and in between the letters to uniquely identify the screen you want events to run on. I normally make these by clicking 10x over the words to get a unique color/point list. Looking for the font gradients on the edges to identify a unique - repeatable event.

Put:
Popup and building handling events and actions at the top of your script. Make one for each type, sometimes you have to make 2 versions for the same one.

Again lots of ways to do this:
After the popup and handing events, put the click on the building. I would make one specific script for each unique placement, even if you have 5 or more of a particular activity. I would make one for each building, and then probably set an [Iteration limit] of Time, and set the check for different times.
image

If this game has clear indications when to click or not to click, it's possible that a generic find and click may work. Such as Object search. From what I can tell from 10 minutes to play, the indication isn't clear when actions would need to be taken....if there's not an indication you would need to rely on [Limit: Iteration/Time/Session] or using RNG.

Again, I think a high level of automation is achievable.

from appteststudio.

Related Issues (20)

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.