Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 20:08
    codecov[bot] commented #1150
  • 17:55
    codecov[bot] commented #1150
  • 17:54
    RadaevValentin synchronize #1150
  • 16:51

    vasily-v-ryabov on atspi

    Fix partial escaping and old .b… Fix error when writing non-asci… (compare)

  • 16:51
    vasily-v-ryabov closed #1149
  • 16:51
    vasily-v-ryabov closed #1045
  • 16:51
    vasily-v-ryabov closed #1133
  • Nov 30 13:56
    danielpyc commented #1152
  • Nov 29 13:42
    danielpyc opened #1152
  • Nov 28 23:08
    codecov[bot] commented #1149
  • Nov 28 21:32
    codecov[bot] commented #1149
  • Nov 28 21:32
    eltimen synchronize #1149
  • Nov 28 21:15
    codecov[bot] commented #1150
  • Nov 28 19:39
    RadaevValentin opened #1150
  • Nov 28 16:51
    codecov[bot] commented #1149
  • Nov 28 15:17
    eltimen opened #1149
  • Nov 28 15:17
    eltimen review_requested #1149
  • Nov 28 12:32
    vasily-v-ryabov commented #335
  • Nov 28 12:21
    vasily-v-ryabov assigned #757
  • Nov 28 12:19
    vasily-v-ryabov milestoned #1137
Vasily Ryabov
@vasily-v-ryabov
Hi @Bromus93_twitter it's worth reading the whole Getting Started Guide. It explains window specification concept and how to find particular element (and its wrapper).
Bromus
@Bromus93_twitter
@vasily-v-ryabov that was very helpful thank you
Bromus
@Bromus93_twitter
So I was able to click on the delete button on my calculator but for some reason whenever I try clicking on any of the special characters like 7, 8 or +, it tells me that Im using invalid syntax. I ran the print_control>identifiers() to make sure that I can see the child windows which I was able to. I did something like app.Off.click() and that worked fine but if i do something like app.7.click() then it doesnt work. Is it because it doesnt like the format of the button's title
Vasily Ryabov
@vasily-v-ryabov
Yes, because attribute name has the same limitations as variable name. It can’t start from digit or special character because of Python syntax. Use app[“7”].click() instead. Item access has no such restrictions. Any string is OK.
Bromus
@Bromus93_twitter
Hey guys is there a version of selected_item_index() from the ListBox for TreeView? I couldnt find it anywhere and was wondering if there was a way to retrieve the index of a tree item
Bromus
@Bromus93_twitter
And this is for Win32
Swaraj Kumar Barik
@swaraj_barik_twitter
Hi All
I'm new to Pywinauto
While I started my application, the pop up opens & closes automatically
how can we handle this?
Vasily Ryabov
@vasily-v-ryabov
Hi @swaraj_barik_twitter please read the Getting Started Guide first, then Waiting for Long Operations. Methods wait() and wait_not() is what you need with proper window specifications.
Vasily Ryabov
@vasily-v-ryabov
@Bromus93_twitter this is not so easy because TreeView items are not populated in a hierarchy for "win32" backend. There is special virtual class _treeview_element which can be created indirectly using method get_item(path) or just item(path)where possible path values can be obtained by method print_items(). Hope it helps.
Bromus
@Bromus93_twitter
Thank you for clarifying that @vasily-v-ryabov
Bromus
@Bromus93_twitter
I am trying to click on a button window by doing something like dlg_button[('Data')].click() but it tells me that the control does not have a get item method for item access. This surprises me because previously i had done something like app[“7”].click() which didnt give me any issues. The only difference is that I had to go down a hierarchy level but regardless I am confused on why this is happening.
Bromus
@Bromus93_twitter
The other difference is that this is WPF
Bromus
@Bromus93_twitter
And the parent control of the button control has a control type of custom
Vasily Ryabov
@vasily-v-ryabov
@Bromus93_twitter what dlg_button['Data'].wrapper_object() returns? Is it TreeViewWrapper object from common_conrols.py?
Bromus
@Bromus93_twitter
@vasily-v-ryabov its just a random button but I actually figured it out the solution code. For some reason it wanted the method toggle() instead of click and it wanted me to specify the control. So it wanted something like dlg.Button.toggle(). That part doesn't bother me as much as me not being able to do something like dlg['data'].click() or dlg['data'].toggle() considering I was able to do this before on other applications for WPF (although now that Im thinking about it that was mainly for ListBox)but to answer your question its a Button wrapper from uia controls and not a TreeViewWrapper from common_controls.py
TheZelja
@thezelja

Hi all. Is there an option to pass "Start in directory" option to:
Application().Start

https://imgur.com/a/3GkSjc7

vasiinso
@vasiinso
Hi All, i want to automate an installer automation, where parent process has a child process, so in that process have all the ui controls are available, how could i get the child process
Avn
@Avnsx
hello guys i'm wondering if i can somehow set hotkeys to run a certain code if pressed with pywinauto?
Vasily Ryabov
@vasily-v-ryabov
Hi @thezelja method .start(...) takes optional parameter work_dir='...' or you can change working directory in Python using os.chdir(path_to_dir).
Hi @vasiinso you need something like Application(backend="uia").connect(title="...", timeout=10). Timeout is important since it is zero by default for now.
vasiinso
@vasiinso
Hi @vasily-v-ryabov , I did some workaround for that. And i wanted to understand about this library, for ex:when i try to use some methods for ListItem, it says method not available for UIA Element Info, kind of error am getting as a developer inorder to know the type of element that is returning and handling the method by trying from ur suggested list is very tediuos . so can you help me with that, to better understand the library, it may be helpful if you share some other resources
Vasily Ryabov
@vasily-v-ryabov
@vasiinso currently it may look weird to find correct method. There is a list of supported patterns for every control type: https://docs.microsoft.com/en-us/windows/win32/winauto/uiauto-controlpatternmapping But some apps support MS UI Automation API not very well. So you may face COMError even if the docs from Microsoft tells it's a must. We're trying to workaround such cases if it's technically possible. But there is no 100% guarantee. Methods like .click_input() and .type_keys() work almost everywhere because it's not a UI Automation Pattern. But sometimes even .type_keys() may fail if .set_focus() provider implementation on the app side has some bug.
endeav0r
@endeav0r
I keep getting the following error after installing pywinauto: DLL load failed while importing win32ui: A dynamic link library (DLL) initialization routine failed.. Is this a Python 3.9 thing? Any recommendation on what I can do here?
endeav0r
@endeav0r
Yeah, appears to be a python 3.9 thing. Python 3.8 works.
ankurbyjus
@ankurbyjus

Hi, I am trying to get the active tab of Mozilla Firefox, i am able to but it takes long, I am getting error if I search by class_name="Edit", tried with _re too. This is my query

app = pywinauto.Application(backend = 'uia').connect(process=4040)
dlg = app.top_window()
url = dlg.child_window(title="Search with Google or enter address",auto_id="urlbar-input",control_type="Edit",enabled_only=True,process=4040)
print (url.get_value())

Please suggest how to make it faster, rest all browsers return value within a second, this takes 4-5 seconds.

*Need to get the url of the active tab
Gerocell
@gerocell
Hi, I am trying to automate the digital signature in Adobe Reader DC. I managed to open the Tools pane but after that I want to access the "Open" button of the 'Certificates' tool. I would like to list the controls in the pane but I can't find how to do that. I used the method children() on the lowest level pane but it returned an empty list. If you have a tip or two that will be very welcome. Thanks.
LexiconCode
@LexiconCode
@vasily-v-ryabov If I were to implement UI automation events such as AddFocusChangedEventHandler where would appropriate place for the wrapper? I would assumeuiawrapper.
Bromus
@Bromus93_twitter
How do I access items inside a ComboBoxExWrapper
AshaN33
@AshaN33
image.png
am trying to select a row form the table. i have the below inspect property but i tied many t things but it does not work .. could you please any one help me on this.... how to select the row using the below property
Vasily Ryabov
@vasily-v-ryabov
@AshaN33 access by legacy_name will be implemented in next major release (no exact deadline unfortunately).