Re: [Sikuli-driver] [Question #206597]: Problem with importing "external" modules
Question #206597 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206597 Status: Answered => Solved CryoGenID confirmed that the question is solved: Hello Raimund! It is working now... I could hit my head against the wall, such a dumb error ;-) After I copied your demo-code and got the same error message again, I went on and printed out the content of "sys.path" and there I found out that the directory of the "main"-sikuli script under which the "Tests" directory resides, was not part of that path. So the simple solution was to include that: --- testsModulePath = os.path.join(dir, "RUNME.sikuli\Tests") --- And that's it ;-) So if anybody is interested, here is the working code: --- import InitSystem import GlobalSettings import os dir = os.path.dirname(getBundlePath()) testsModulePath = os.path.join(dir, "RUNME.sikuli\Tests") modulesToRun = ("Test1", "Test2", "Test_OCR") print("Testing started: " + InitSystem.getCurrentTime()) if (InitSystem.startUp(GlobalSettings.screenT, GlobalSettings.screenQ, GlobalSettings.screenP)==0): # Init the tests popup("ERROR during startup, cancelling all tests...") exit else:# Startup was OK # Iterating through all Test-Modules popup("OK starting Tests in Modules") if not testsModulePath in sys.path: sys.path.append(testsModulePath) for currentModule in modulesToRun: popup("Working with module " + currentModule + " in directory " + testsModulePath) popup("Opening " + currentModule) exec("import " + currentModule) exec(currentModule + ".runModule()") InitSystem.shutDown() # Shut down the test print("Testing ended: " + getCurrentTime()) --- Thanks a LOT Raimund and best regards, Christian -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207113]: v 1.0 release date
New question #207113 on Sikuli: https://answers.launchpad.net/sikuli/+question/207113 Hi all, I would like to know if you have planned the release date of version 1.0 of sikuli. Thanks on advance, -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207115]: highlight() does not work on linux?
New question #207115 on Sikuli: https://answers.launchpad.net/sikuli/+question/207115 I tried Region(100,100,100,100).highlight(1) on Ubuntu 12.04, I got below message on Sikuli IDE: [info] Sikuli vision engine loaded. [info] VDictProxy loaded. [log] highlight Region[100,100 100x100]@Screen(0)[0,0 1396x1022] E:Y, T:3.0 E:Y, T:3.0 for 1.0 secs [error] highlight does not work on Linux. Is this expected? Thanks, John -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206597]: Problem with importing "external" modules
Question #206597 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206597 RaiMan posted a new comment: Ok, but this only makes sense, if your main script IS IN FACT RUNME.sikuli (contains a RUNME.py). >From your initial question one could get the impression, that it CONTAINS a >runme.sikuli: ... All these files are opened via \\FILESERVER\Directory\Directory\Directory\Runme.sikuli (for the runme.sikuli) ... and using dir = os.path.dirname(getBundlePath()) made this even more probable, since this gives the directory, that CONTAINS the some_script.sikuli, in your real case \\FILESERVER\Directory\Directory\Directory\ so if your directory structure really is like this: some-path\ -- RUNME.sikuli -- RUNME.py -- InitSystem.sikuli -- GlobalSettings.sikuli -- Tests -- Test1.sikuli -- Test2.sikuli then the real (general solution) is, to take the return of getBundlePath() as the base directory for the sys.path manipulation. BTW: I guess in the last time it has to read InitSystem.getCurrentTime() # main script (content of RUNME.py) import InitSystem import GlobalSettings import os dir = getBundlePath() # changed ### testsModulePath = os.path.join(dir, "Tests") # changed ### modulesToRun = ("Test1", "Test2", "Test_OCR") print("Testing started: " + InitSystem.getCurrentTime()) if (InitSystem.startUp(GlobalSettings.screenT, GlobalSettings.screenQ, GlobalSettings.screenP)==0): # Init the tests popup("ERROR during startup, cancelling all tests...") exit else: # Startup was OK # Iterating through all Test-Modules popup("OK starting Tests in Modules") if not testsModulePath in sys.path: sys.path.append(testsModulePath) for currentModule in modulesToRun: popup("Working with module " + currentModule + " in directory " + testsModulePath) popup("Opening " + currentModule) exec("import " + currentModule) exec(currentModule + ".runModule()") InitSystem.shutDown() # Shut down the test print("Testing ended: " + InitSystem.getCurrentTime()) # changed ### -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207060]: How to pass command line argument to imported file
Question #207060 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207060 Status: Answered => Open Neo is still having a problem: Yes. you are correct. I like the second approach. I didn't understand why did you declare global variable as Settings.myLang ? Also, when I run the script it throws the following error. Looks like some import is missing.. ? exec("import " + Settings.myLang) AttributeError: type object 'org.sikuli.script.Settings' has no attribute 'myLang' -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207119]: Inconsistancy in Image recognition with multiple runs of scripts
New question #207119 on Sikuli: https://answers.launchpad.net/sikuli/+question/207119 i am facing image recognition issues on multiple runs of the script on the same application with no changes. for example: click(image) There is no change in the application(or even i didnot build it again). yesterday i have executed the script for more than 5 times and it worked fine. But today when i ran the script, its not recognizing one or two images and not clicking on those images. If I change the similarity then its recognizing. My question is: for and each every run do i need to change the similarity, even though there is no change in the application. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 Status: Answered => Open denywinarto is still having a problem: I got an idea for restarting the script, what if we add a code to run the same script if the bug occurs? Is that possible? Also, i've tried using second handler, but i cant get the script to run properly, it wont run RegA..D I've added RegF because it turns out there's another error for network connection problem, it's same as RegE, it can come up anytime Any idea where to put the second handler correctly? type("d",KEY_WIN) doubleClick(Pattern("1346049773218.png").similar(0.85)) RegA = Region(SCREEN) RegB = Region(SCREEN) RegC = Region(SCREEN) RegD = Region(SCREEN) RegE = Region(SCREEN) RegF = Region(SCREEN) def handler(e): global isImgA_or_ImgB_or_ImgC_or_ImgD isImgA_or_ImgB_or_ImgC_or_ImgD = True RegA.onAppear(Pattern("XPBLauncherF.png").similar(0.81), handler) RegB.onAppear(Pattern("ICIMuhunmaaf.png").similar(0.91), handler) RegC.onAppear(Pattern("1346051181203.png").similar(0.89), handler) RegD.onAppear(Pattern("1346049877203.png").similar(0.92), handler) def handler2(e): global isImgE_or_ImgF isImgE_or_ImgF = True RegE.onAppear("XPBLauncherG.png", handler2) RegF.onAppear(Pattern("QondErrorRep.png").similar(0.88), handler2) while True: RegE.observe(FOREVER,background=True) RegF.observe(FOREVER,background=True) isImgE_or_ImgF = False while not isImgE_or_ImgF: wait(1) RegE.stopObserver() RegF.stopObserver() if RegE.exists("XPBLauncherG.png"): RegE.stopObserver() click(Pattern("OK.png").similar(0.86)) import pointblank elif RegF.exists(Pattern("QondErrorRep.png").similar(0.88),0): click(Pattern("1345976311187.png").similar(0.92)) RegF.stopObserver() import pointblank break exit while True: RegA.observe(FOREVER,background=True) RegB.observe(FOREVER,background=True) RegC.observe(FOREVER,background=True) RegD.observe(FOREVER,background=True) isImgA_or_ImgB_or_ImgC_or_ImgD = False while not isImgA_or_ImgB_or_ImgC_or_ImgD: wait(1) RegA.stopObserver() RegB.stopObserver() RegC.stopObserver() RegD.stopObserver() if RegA.exists(Pattern("XPBLauncherF.png").similar(0.81),0): click(Pattern("OK.png").similar(0.86)) break exit elif RegB.exists(Pattern("ICIMuhunmaaf.png").similar(0.91),0): click(Pattern("OK.png").similar(0.86)) break exit elif RegC.exists(Pattern("1346051181203.png").similar(0.89),0): doubleClick(Pattern("1346051181203.png").similar(0.89)) wait(Pattern("1346088182875.png").similar(0.79), FOREVER) click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break exit elif RegD.exists(Pattern("1346049877203.png").similar(0.92),0): click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break exit -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207060]: How to pass command line argument to imported file
Question #207060 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207060 Status: Open => Answered RaiMan proposed the following answer: Sorry for misleading - one should always test suggestions ;-) Using Sikuli's Settings class as a replacement for global variables (less to write and to take care for),only works within the scope of a module (main or imported), but there over all used functions. In your case the solution is somewhat different: In your main module you just evaluate the command line parameter to the name of the appropriate language module e.g. "DE_images" In your commons.sikuli, add a statement like this: currLang = "EN_images" # default setting So the import statement now has to be: exec("import " + currLang) If you do nothing else, then the EN version would be run. To change the language selection dynamically in main based on the given command line parameter, you have to add the following after the import commons.sikuli: commons.currLang = currLangFromParameter # e.g. "DE_images" which changes the value of currLang in commons.sikuli to what you want. In this case finally the executed import would read import DE_images -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207119]: Inconsistancy in Image recognition with multiple runs of scripts
Question #207119 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207119 parimala mallepally gave more information on the question: Note: I even i have given extra wait(n) time inorder to load the page fully. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 denywinarto gave more information on the question: Ok. i decided to narrow down the bug trap search(E,F) to one of the image search process (C) I got it to work, like this: type("d",KEY_WIN) doubleClick(Pattern("1346049773218.png").similar(0.85)) RegA = Region(SCREEN) RegB = Region(SCREEN) RegC = Region(SCREEN) RegD = Region(SCREEN) RegE = Region(SCREEN) RegF = Region(SCREEN) RegG = Region(SCREEN) def handler(e): global isImgA_or_ImgB_or_ImgC_or_ImgD isImgA_or_ImgB_or_ImgC_or_ImgD = True RegA.onAppear(Pattern("XPBLauncherF.png").similar(0.81), handler) RegB.onAppear(Pattern("ICIMuhunmaaf.png").similar(0.91), handler) RegC.onAppear(Pattern("1346051181203.png").similar(0.89), handler) RegD.onAppear(Pattern("1346049877203.png").similar(0.92), handler) def handler2(e): global isImgE_or_ImgF_or_ImgG isImgE_or_ImgF_or_ImgG = True RegE.onAppear("XPBLauncherG.png", handler2) RegF.onAppear(Pattern("QondErrorRep.png").similar(0.88), handler2) RegG.onAppear(Pattern("1346088182875.png").similar(0.79), handler2) while True: RegA.observe(FOREVER,background=True) RegB.observe(FOREVER,background=True) RegC.observe(FOREVER,background=True) RegD.observe(FOREVER,background=True) isImgA_or_ImgB_or_ImgC_or_ImgD = False while not isImgA_or_ImgB_or_ImgC_or_ImgD: wait(1) RegA.stopObserver() RegB.stopObserver() RegC.stopObserver() RegD.stopObserver() if RegA.exists(Pattern("XPBLauncherF.png").similar(0.81),0): click(Pattern("OK.png").similar(0.86)) break exit elif RegB.exists(Pattern("ICIMuhunmaaf.png").similar(0.91),0): click(Pattern("OK.png").similar(0.86)) break exitC elif RegC.exists(Pattern("1346051181203.png").similar(0.89),0): doubleClick(Pattern("1346051181203.png").similar(0.89)) while True: RegE.observe(FOREVER,background=True) RegF.observe(FOREVER,background=True) RegG.observe(FOREVER,background=True) isImgE_or_ImgF_or_ImgG = False while not isImgE_or_ImgF_or_ImgG: wait(1) RegE.stopObserver() RegF.stopObserver() RegG.stopObserver() if RegE.exists("XPBLauncherG.png"): click(Pattern("OK.png").similar(0.86)) import pointblank elif RegF.exists(Pattern("QondErrorRep.png").similar(0.88),0): click(Pattern("1345976311187.png").similar(0.92)) import pointblank break exit elif RegG.exists(Pattern("1346088182875.png").similar(0.79)): click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break exit elif RegD.exists(Pattern("1346049877203.png").similar(0.92),0): click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break exit But when i got "ImportError: No module named pointblank" (pointblank is the name of this script) i thought according to this http://sikuli.org/docx/globals.html We only need import scriptname ? What am i missing here? Or is it impossible to import same script? -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206597]: Problem with importing "external" modules
Question #206597 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206597 CryoGenID posted a new comment: Raimund, again: THANKS :) Now it works like a charm and is now independent of the name of the "main"-sikuli file :-) Best regards, Christian -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207060]: How to pass command line argument to imported file
Question #207060 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207060 Status: Answered => Solved Neo confirmed that the question is solved: oh.. yaa. Thanks much. Its solved my issue. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Bug 1016426] Re: Sikuli-ide crashes when interacted with in Ubuntu 11.04
That is the correct answer! :) So I ran it as root and it worked fine. Looked at the folders and files. They were owned by my own user but their group was weird. Tried changing the group but this still caused the problem with ran normally. Any idea how the permissions should be set up usually? -- You received this bug notification because you are a member of Sikuli Drivers, which is subscribed to Sikuli. https://bugs.launchpad.net/bugs/1016426 Title: Sikuli-ide crashes when interacted with in Ubuntu 11.04 Status in Sikuli: New Bug description: I've just install Sikuli on a new Ubuntu 11.04 system via it's zip file along with it's needed dependencies. Sikuli-ide starts up as expected. However as soon as I interact with the ide, e.g. select an item in a menu (Open) or even attempt to close the window it freezes \ crashes and becomes completely unresponsive. I'm thinking it might be a dependency issue but as I say I've installed the required ones already. Any help would be brilliant. Cheers! To manage notifications about this bug go to: https://bugs.launchpad.net/sikuli/+bug/1016426/+subscriptions ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206503]: Java: using Sikuli features
Question #206503 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206503 vidisha aggarwal gave more information on the question: m able to download Jython.. now i m facing the problem that how to execute a sikuli script i.e. .script files in eclipse. i have created a new Py Dev Project and also added the sikuli_script.jar files. Please guide me what should be my next step? -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
New question #207167 on Sikuli: https://answers.launchpad.net/sikuli/+question/207167 I searched in the Answers, couldn't see anyone facing this. Problem: Able to generate html report when run from IDE, but if I the same run through cmd line, empty report has created. What is the issue. My main file looks like this: import unittest import HTMLTestRunner class SuiteA(unittest.TestCase): def A() def B() timestamp = time.strftime('%Y_%m_%d_%H_%M') rname = 'MyReport_'+timestamp+'.html' base_dir = os.path.abspath(getBundlePath()+'//..') report_file = os.path.join(base_dir, rname) outfile = open(report_file, "wb") runner = HTMLTestRunner.HTMLTestRunner( stream=outfile, title=rname, description='bla bla' ) runner.run(suite) outfile.close() This is the command I use to run from cmd line $sudo -r main.sikuli Let me know if I am missing any thing here. The same script generating report if I run from IDE. I have spent time to trouble shoot but couldn't resolve so far :( -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Neo gave more information on the question: and BTW, I have kept my HTMLTestRunner.py inside main.sikuli file - (right click on main.sikuli -> show package contents -> paste HTMLTestRunner.py). Is this right way of doing ? It worked when run from IDE. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207119]: Inconsistancy in Image recognition with multiple runs of scripts
Question #207119 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207119 Status: Open => Answered RaiMan proposed the following answer: It might be dependent on slight changes of background. Capturing too much background is a problem in many cases. If you have to reduce the min similarity, than this is a hint on bad captures. So recapture the images, so the capture concentrates on the really significant parts of the image while avoiding the capture of background as much as possible. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Open => Answered RaiMan proposed the following answer: --1. base_dir it seems you want the directory, where your script is located: base_dir = os.path.dirname(getBundlePath()) this does it. --2. where to put Jython modules used in more than one script (Mac) to copy those modules into the script folder (bundle on Mac) is not a good idea. They should be in a central place. A standard place, that is already in sys.path is /Applications/Sikuli-IDE.app/Contents/Resources/Java/Lib So just open the bundle and add this Lib folder (it does not exist yet) and copy those more often used modules there. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 Status: Open => Answered RaiMan proposed the following answer: looking at your workflow logic, I understand the following -1 the script starts and sets up some regions and observer events -2 a loop is entered, that starts observers A..D -3 you wait until one of these events is fired -4 you stop the observers -5 you evaluate, which of the events A..D was fired (exclusive or, first one wins) -6 if it is A or B or D, some actions are taken and the loop is ended (comment: again: the exit after the break is useless, because never executed, if you want to terminate your script here, just use exit (written exit() !!) instead of break. -7 in case of C, you take some actions and start observing E...G (same approach as with steps 2...5 for A...D) -8 if one of these events fires, you evaluate which one -9 if it is E or F, it seems, you want to start all over again (import pointblank) -10 if it is G, you do something and then break the inner loop (the exit does not matter), which finally brings your workflow back to step -2. The critical part now is step 9. If I am right, that you want to start your script all over, then it is the same as going back to step -2 (before starting the loop are only one-time-executed statements, which will have the same values, wether you loop again from step -2. or start the script again. So just replace the import with a break and you have what you want. your script with modifications: type("d",KEY_WIN) doubleClick(Pattern("1346049773218.png").similar(0.85)) RegA = Region(SCREEN) RegB = Region(SCREEN) RegC = Region(SCREEN) RegD = Region(SCREEN) RegE = Region(SCREEN) RegF = Region(SCREEN) RegG = Region(SCREEN) def handler(e): global isImgA_or_ImgB_or_ImgC_or_ImgD isImgA_or_ImgB_or_ImgC_or_ImgD = True RegA.onAppear(Pattern("XPBLauncherF.png").similar(0.81), handler) RegB.onAppear(Pattern("ICIMuhunmaaf.png").similar(0.91), handler) RegC.onAppear(Pattern("1346051181203.png").similar(0.89), handler) RegD.onAppear(Pattern("1346049877203.png").similar(0.92), handler) def handler2(e): global isImgE_or_ImgF_or_ImgG isImgE_or_ImgF_or_ImgG = True RegE.onAppear("XPBLauncherG.png", handler2) RegF.onAppear(Pattern("QondErrorRep.png").similar(0.88), handler2) RegG.onAppear(Pattern("1346088182875.png").similar(0.79), handler2) while True: RegA.observe(FOREVER,background=True) RegB.observe(FOREVER,background=True) RegC.observe(FOREVER,background=True) RegD.observe(FOREVER,background=True) isImgA_or_ImgB_or_ImgC_or_ImgD = False while not isImgA_or_ImgB_or_ImgC_or_ImgD: wait(1) RegA.stopObserver() RegB.stopObserver() RegC.stopObserver() RegD.stopObserver() if RegA.exists(Pattern("XPBLauncherF.png").similar(0.81),0): click(Pattern("OK.png").similar(0.86)) break elif RegB.exists(Pattern("ICIMuhunmaaf.png").similar(0.91),0): click(Pattern("OK.png").similar(0.86)) break elif RegC.exists(Pattern("1346051181203.png").similar(0.89),0): doubleClick(Pattern("1346051181203.png").similar(0.89)) while True: RegE.observe(FOREVER,background=True) RegF.observe(FOREVER,background=True) RegG.observe(FOREVER,background=True) isImgE_or_ImgF_or_ImgG = False while not isImgE_or_ImgF_or_ImgG: wait(1) RegE.stopObserver() RegF.stopObserver() RegG.stopObserver() if RegE.exists("XPBLauncherG.png"): click(Pattern("OK.png").similar(0.86)) break elif RegF.exists(Pattern("QondErrorRep.png").similar(0.88),0): click(Pattern("1345976311187.png").similar(0.92)) break elif RegG.exists(Pattern("1346088182875.png").similar(0.79)): click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break elif RegD.exists(Pattern("1346049877203.png").similar(0.92),0): click(Pattern("Y.png").similar(0.83)) click(Pattern("1346050299265.png").similar(0.83)) break -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 Status: Answered => Open denywinarto is still having a problem: Thanks for the answer, but actually, at step 9, i need it to start back at step 1, not 2. Because without step 1 the program wont start... On step 9 the program closes, either because bug crash (RegE), or network error / no connection (RegF) -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207115]: highlight() does not work on linux?
Question #207115 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207115 Status: Open => Answered j proposed the following answer: I think this is intended, as far as I know linux does not support whatever it is that sikuli uses to highlight a region. =( -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206956]: Can't launch sikuli script due to dll error
Question #206956 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206956 Status: Answered => Solved ironmantis7x confirmed that the question is solved: I fixed my issue ... scripts running fine on remote machine. **Important on Windows machines** make sure that BOTH machines (the calling machine and the remote machine) have the same software installed on them. I used psexec script to kick off processes on a remote server and it needed to be installed there as well. Thanks for your support RaiMan! ironmantis7x -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207178]: How to click a specific UI element using regular expression
New question #207178 on Sikuli: https://answers.launchpad.net/sikuli/+question/207178 Hi, I started using sikuli last week for UI Automation, need some help. I am working on a windows mobile automation activity. Here is the scenario. When the search button is clicked, user will be able to see various products listed (screen can be scrolled up and down). I need to write a program for clicking on any product (product could be on the 1st page or product could be anywhere -drag/dropdown). I am looking for regular expressions with which I can identify the UI element uniquely and click on any one of them example: product name:dynex model: dx0200 sku:34000 the above information will be changing dynamically, I need to write code for this. could you please help me by providing the code or any other links to refer? Thanks in advance Siva -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206943]: How to simple count items returned by FindAll
Question #206943 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206943 Status: Solved => Open dinev is still having a problem: Oops. I tried today and I got error " print len(fa) TypeError: object of type 'org.sikuli.script.Finder' has no len()" -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Answered => Open Neo is still having a problem: Thanks for the correction. I have initialized base_dir as you suggested instead of using abspath. Second, I have created LIb folder and placed my HTMLTestRunner.py file there. (Removed HTMLTestRunner.py from main script bundle) Now, can you look into my main problem ;) I am still getting empty html file. :( -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 Status: Open => Answered RaiMan proposed the following answer: So it is simply, that you have to start your program again after events E and F? If yes, that is super easy ;-) At the beginning: # I guess this starts your program type("d",KEY_WIN) doubleClick(Pattern("1346049773218.png").similar(0.85)) # replace it with def startProgram(): type("d",KEY_WIN) doubleClick(Pattern("1346049773218.png").similar(0.85)) wait(3) # adjust to your needs startProgram() # now in the elif blocks for E and F put this just before the break startProgram() So before it goes back to step 2, it restarts your program, which is the only thing, that has to be repeated before looping again to wait for A...D -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Open => Needs information RaiMan requested more information: where is suite defined that should be run with runner.run(suite) ??? -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207178]: How to click a specific UI element using regular expression
Question #207178 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207178 Status: Open => Answered RaiMan proposed the following answer: So you first need to identify each item in the list. Since this seems to be text, you have to first check, wether Region.text() feature reads the text correctly. If this works, then you may have a chance, to solve this with Sikuli ;-) -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206943]: How to simple count items returned by FindAll
Question #206943 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206943 Status: Open => Answered RaiMan proposed the following answer: again some suggestion, that I did not test before, sorry :-( the result of findAll() has to be turned into a list first. len( list( findAll() ) ) but if you want the results too: fa = list( findAll() ) len(fa) -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Needs information => Open Neo gave more information on the question: sorry about that. I thought it is not required to look into this issue. I have a separate method for that. def suite(): suite = unittest.TestSuite() suite.addTest(SuiteA('A')) suite.addTest(SuiteA('B')) return suite suite = suite() timestamp= ... ... Thanks -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #140519]: Sikuli X - Windows - libraries not found - problems when running a script
Question #140519 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/140519 Michiel Vanthuyne posted a new comment: Hi RaiMan, Thanks for your feedback. I'm not completely convinced this does not do any harm. In the situation I tried, I could prevent the error above from happening by correcting the double slash. I had a batch file with something like: @echo off "c:\program files\sikuli x\sikuli-ide.bat" -r "c:\users\administrator\sikuli scripts\myscript.sikuli" When running the batch file by double-clicking it, everything was fine. When the batch file was started from the task scheduler, I received the error described above. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Open => Answered RaiMan proposed the following answer: ok, then it has to be runner.run(suite()) since it is a function call -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #140519]: Sikuli X - Windows - libraries not found - problems when running a script
Question #140519 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/140519 RaiMan posted a new comment: @ Michiel If your script runs in one case and not the other, then this surely has nothing to do with the double backslash ;-) What exactly is your error, when running the script via task scheduler? There are some tricky situations with Sikuli scripts and Windows task scheduler (search in the Questions) -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Bug 1016426] Re: Sikuli-ide crashes when interacted with in Ubuntu 11.04
@Grant : is the correct ownership ** Changed in: sikuli Status: New => Confirmed -- You received this bug notification because you are a member of Sikuli Drivers, which is subscribed to Sikuli. https://bugs.launchpad.net/bugs/1016426 Title: Sikuli-ide crashes when interacted with in Ubuntu 11.04 Status in Sikuli: Confirmed Bug description: I've just install Sikuli on a new Ubuntu 11.04 system via it's zip file along with it's needed dependencies. Sikuli-ide starts up as expected. However as soon as I interact with the ide, e.g. select an item in a menu (Open) or even attempt to close the window it freezes \ crashes and becomes completely unresponsive. I'm thinking it might be a dependency issue but as I say I've installed the required ones already. Any help would be brilliant. Cheers! To manage notifications about this bug go to: https://bugs.launchpad.net/sikuli/+bug/1016426/+subscriptions ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 Status: Answered => Solved denywinarto confirmed that the question is solved: Thanks RaiMan, that solved my question. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206657]: Wait for image A or B or C forever, then take action accordingly
Question #206657 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206657 denywinarto posted a new comment: Thanks alot for helping me RaiMan, much appreciated. Sikuli is fantastic :D -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207243]: Fullscreen app doesn't respond to sikuli command
New question #207243 on Sikuli: https://answers.launchpad.net/sikuli/+question/207243 Not sure if this is a bug.. I have an application that automatically opens in fullscreen mode and cant be disabled, and i need to close that app immediately as soon as it shows up.. i've tried these: - capture a "close" icon image from that app during fullscreen mode - click and doubleclick that image using sikuli But it doesn't seem to respond to sikuli command on the log file sikuli executes the command without error.. the image also matches the source when i check it Then i tried running just alt + F4 while in fullscreen mode, but it brings up shutdown menu, the log says the command is executed "type(Key.F4, KEY_ALT)" Any way to get around this? -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #206503]: Java: using Sikuli features
Question #206503 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/206503 vidisha aggarwal posted a new comment: please reply soon for my previous question. -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
[Sikuli-driver] [Question #207248]: Windows - libraries not found java.lang.UnsatisfiedLinkError:
New question #207248 on Sikuli: https://answers.launchpad.net/sikuli/+question/207248 I have Sikuli version =>Sikuli-X-1.0rc3 (r905)-win32.exe I have Install My Sikuli i=> D:\Sikuli x I have restriction that I can not Use 32 bit java I have Machine => Microsoft window Server 2003 R2 with Enterprise x64 edition service pack 2 when I run my script with these configuration I got following error => Exception in thread "Thread-75" java.lang.UnsatisfiedLinkError: C:\Documents and Settings\qtp1\Local Settings\Temp\3\tmplib\Win32Util.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) at java.lang.Runtime.load0(Runtime.java:770) at java.lang.System.load(System.java:1003) at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader .java:44) at org.sikuli.script.Win32Util.(Win32Util.java:19) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.sikuli.script.Env.getOSUtil(Env.java:91) at org.sikuli.script.App.(App.java:9) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161) at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:24 7) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:333 0) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.j ava:164) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:3 98) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:306 5) at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.j ava:175) at org.mozilla.javascript.Context.evaluateString(Context.java:1104) at net.sf.sahi.rhino.RhinoScriptRunner.run(RhinoScriptRunner.java:144) at java.lang.Thread.run(Thread.java:662) So please suggest me any solution for this -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Status: Answered => Open Neo is still having a problem: No I have initialized that to a variable. Sorry for lazy to type in my code... suite = suite() outfile = open(report_file, "wb") runner = HTMLTestRunner.HTMLTestRunner( stream=outfile, title=rname, description='bla bla' ) runner.run(suite) outfile.close() No resolution yet :( -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207178]: How to click a specific UI element using regular expression
Question #207178 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207178 Status: Answered => Open Siva is still having a problem: Thanks for a quick turnaround RaiMan. I have tried with the option given. In the Windows Mobile, I have created a region (On Sikuli - Create Region, captured that region). reg=Region(here comes captured image of region) myText=reg.text() wait(2) print myText I was able to see the below results in the Sikuli F7nd m?ion I VS 1-10 EF $7 lgults Best Match 2..1\| lnsignia'? - 39" Class ? LCD - 10EOp - 60Hz - HDTV ?k on sane $279.99 AF A AAI 19 reviews Shipplng: Usually leavesourwarehouse in1 business d ay 32" Class / LCD/ Dynex?? ~ *** 7k vk On Sale $189.99 S4 reviews Shlpplng: Usually le avesourwarehouse ln1 business day 19" Class/ LED / Insignia'? 720p / 60Hz/ HDTV i ink i ir On Sale $99.99 67 reviews For your information, on my Windows mobile application, the first image will have the below content Insignia TM - 39" Class - LCD - 1080p - 60Hz - HDTV Five Star symbols 19 reviews On Sale #279.99 Shipping: Usually leaves our warehouse in 1 businessday Region.Text() is capturing the information but how can I check whether one particular text is present on the region and how can I click on that UI element only (Please see the above Insignia information, say for example, I want to move up/down and click on any similar product on the windows mobile), How can I do this? Any help would be great! Thanks Siva -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp
Re: [Sikuli-driver] [Question #207167]: Empty report - HTMLTestRunner through command line
Question #207167 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/207167 Neo gave more information on the question: Resolved. Seems to be a bug. I have removed tearDown() method in my suite and report is started coming after the test execution. But, I wanted to close my app and restart it for each of my test case. It seems with this approach (running from command line) run only one case if we use tearDown() method. Surprised to see noone in this forum faced this issue. Raiman, can you confirm this a bug? -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. ___ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp