Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
654 commits
Select commit Hold shift + click to select a range
9e009d7
Fix merge issues in base_application.py.
vasily-v-ryabov Dec 1, 2019
e450f60
Add list of search properties to AtspiElementInfo.
vasily-v-ryabov Dec 1, 2019
8bfc729
Rename the rest of "process" keywords to "pid".
vasily-v-ryabov Dec 1, 2019
eb9f6e4
Fix an invalid escape sequence in keyboard.py
BoboTiG Dec 16, 2019
10b3772
Merge pull request #864 from BoboTiG/patch-1
vasily-v-ryabov Dec 18, 2019
082dbbd
Get back to previous default values in find_elements(...), add some d…
vasily-v-ryabov Dec 22, 2019
127322e
Merge pull request #848 from vasily-v-ryabov/dev_nd_issue_403_dbg
vasily-v-ryabov Jan 1, 2020
896169d
issue #873: fix win32 mocks for sphinx docs generation
airelil Jan 14, 2020
3352a63
Issue #873: fix win32_hooks docs generation
airelil Jan 15, 2020
977f0a0
unittests: stabilize TaskbarTestCases.testClickVisibleIcon
airelil Jan 17, 2020
f1ee95e
issue #873: initial docs for atspi backend
airelil Jan 18, 2020
d1f537b
Use only relative imports in win32_hooks.py
airelil Jan 18, 2020
9187e2f
Merge pull request #881 from airelil/atspi
vasily-v-ryabov Jan 18, 2020
e217667
issue #873: re-work the Application documentation
airelil Jan 18, 2020
136e498
issue #877: enable Desktop() on all platforms
airelil Jan 18, 2020
c8199ab
Fix indentation in AtspiElementInfoTests.get_app()
airelil Jan 22, 2020
4005bff
Merge pull request #882 from airelil/atspi
vasily-v-ryabov Jan 22, 2020
a35aea1
issue #872: restore binding WindowSpecification to Application
airelil Jan 24, 2020
f32f371
Rework linux Application unit tests
airelil Jan 24, 2020
49e201e
Stabilizy UIAWrapperMouseTests
airelil Jan 25, 2020
0f9d6c8
issue #872: add atspi unittest for spec binding after app restart
airelil Jan 27, 2020
b26ffb2
Better Linux platform detection in appication and clipboard tests
airelil Jan 28, 2020
5832acf
Merge pull request #884 from airelil/atspi
vasily-v-ryabov Jan 30, 2020
4d49346
Move client_to_screen implementation into BaseWrapper
airelil Jan 31, 2020
39e20e9
Fix a typo in ATSPI ComboBoxWrapper.text doc string
airelil Jan 31, 2020
65a62e2
issue #852: re-work Application.cpu_usage for Linux platform
airelil Jan 31, 2020
352be63
PEP8: fix indentations and spaces in linux/application.py
airelil Feb 2, 2020
8f78d4b
issue #547: throw same exception from HwndWrapper.close and UIAWrappe…
airelil Feb 2, 2020
9e7fa0a
Small fixes for pull request #886
airelil Feb 12, 2020
59f550d
UIAWrapper: revert accidently commited debug code
airelil Feb 24, 2020
052c810
Merge pull request #886 from airelil/atspi
vasily-v-ryabov Feb 25, 2020
238885b
issue #668: add WindowWrapper for uia backend
airelil Apr 25, 2020
7d81113
Fix lint warning about UiaWrapper.move_window params
airelil Apr 25, 2020
4f57731
Align HwndWrapper.move_window signature with UIAWrapper.move_window
airelil Apr 25, 2020
ffceaac
Better handling of control type in find_wrapper() for UIAWrapper/Atsp…
airelil Apr 25, 2020
e0a47f5
Add RECT.__iter__(), remove win32structures from test_uiawrapper
airelil Apr 25, 2020
ecaf8dd
Merge pull request #924 from airelil/find_wrapper_fix
airelil Apr 26, 2020
1b474df
Merge pull request #922 from airelil/atspi
airelil Apr 26, 2020
f01093d
Use new 'name' arg in examples
airelil Apr 26, 2020
51e6793
Merge pull request #925 from airelil/atspi
vasily-v-ryabov Apr 28, 2020
13d1598
atspi: fix PyGTK deprecation warnings in gtk_example.py
airelil May 12, 2020
f021d64
TravisCI: update to xenial, add python 3.7 and 3.8, remove 3.3 and 3.5
airelil May 12, 2020
b0ebc1f
issue #915: add SetProcessDpiAwarenessContext
airelil May 10, 2020
ac1af1e
Merge pull request #931 from airelil/atspi
vasily-v-ryabov May 14, 2020
1a4e035
ATSPI: improve tolerance in AtspiWrapperTests.test_image
airelil May 16, 2020
6208728
ATSPI: improve tolerance for linux ApplicationTestCases.test_cpu_usage
airelil May 16, 2020
6d48f3a
TravisCI: remove "sudo:required"
airelil May 17, 2020
5fc0a7f
Merge pull request #934 from airelil/atspi_dev
vasily-v-ryabov May 18, 2020
53e9f82
added mouse tween
AleksandrPanov Jun 1, 2020
87d0e54
added first test
AleksandrPanov Jun 2, 2020
9d41827
fixed, added duration=0 in def move
AleksandrPanov Jun 3, 2020
90042d4
fix
AleksandrPanov Jun 3, 2020
20af868
added first test
AleksandrPanov Jun 2, 2020
2d1a542
Merge branch 'mouse-tween' of https://github.com/AleksandrPanov/pywin…
AleksandrPanov Jun 3, 2020
8f4cec6
fix get_pos in unit test
AleksandrPanov Jun 4, 2020
23c6d6d
fix def move
AleksandrPanov Jun 4, 2020
909cfd5
check move in new test
AleksandrPanov Jun 4, 2020
813e8fb
fixed cursor endpoint
AleksandrPanov Jun 4, 2020
062e32c
fix float math.ceil in python 2.7
AleksandrPanov Jun 5, 2020
228d90a
added tests
AleksandrPanov Jun 5, 2020
8f5b5c7
fix test_mouse_can_move_cursor3
AleksandrPanov Jun 5, 2020
c1487f5
updated test_mouse_tweens
AleksandrPanov Jun 5, 2020
1e7fd22
fix integer division in python27
AleksandrPanov Jun 5, 2020
b7efe5f
added x_start, y_start
AleksandrPanov Jun 6, 2020
33510e8
fix range
AleksandrPanov Jun 6, 2020
18434a4
added TODO
AleksandrPanov Jun 6, 2020
9338419
duration must be float (in seconds)
AleksandrPanov Jun 6, 2020
d7efb72
added _get_cursor_pos
AleksandrPanov Jun 6, 2020
4638ca8
added fast move
AleksandrPanov Jun 6, 2020
af07e8c
fix tabs
AleksandrPanov Jun 6, 2020
3ef6965
fix tests
AleksandrPanov Jun 6, 2020
fe6568b
fix
AleksandrPanov Jun 6, 2020
ab1c573
fix tab
AleksandrPanov Jun 6, 2020
bd822a6
return win32
AleksandrPanov Jun 6, 2020
c06c2c1
fix
AleksandrPanov Jun 7, 2020
90d87bd
added duration in def move_mouse_input
AleksandrPanov Jun 7, 2020
c79f76a
added duration in def drag_mouse_input
AleksandrPanov Jun 7, 2020
86f6042
fix drag_mouse
AleksandrPanov Jun 7, 2020
bf31f1f
fix drag_mouse range
AleksandrPanov Jun 7, 2020
605deb1
updated duration
AleksandrPanov Jun 8, 2020
c681c41
Fix docstring: "app.child_window" -> "app.window"
stereowind Jun 10, 2020
639811f
Merge pull request #946 from stereowind/docstring-fix
airelil Jun 10, 2020
187b84d
Merge pull request #938 from AleksandrPanov/mouse-tween
vasily-v-ryabov Jun 11, 2020
8031511
More thorough check whether UIA can be used (#987)
robertschulze Sep 26, 2020
37fc9e5
Change depth of elements (children became descendants with depth=1)
eltimen Oct 5, 2020
cd63acc
Fix print renamed property in dump_tree
eltimen Oct 11, 2020
eb404e0
Add test for child_window() with depth parameter
eltimen Oct 11, 2020
1ce09c8
Fix failure of TaskbarTestCases.testClickCustomizeButton
eltimen Oct 11, 2020
e72f5d4
Change notepad.exe path in test_child_window_depth
eltimen Oct 13, 2020
de1b1a8
Merge pull request #989 from eltimen/elements-depth-change
vasily-v-ryabov Oct 14, 2020
43b6288
Change UIAElementInfo.children() to use TreeWalker internally
eltimen Oct 5, 2020
deb2b80
Change UIAElementInfo.descendants() to use TreeWalker (draft)
eltimen Oct 8, 2020
312de33
Fix print_control_identifiers() freezing on deeply nested controls
eltimen Oct 8, 2020
bcf0106
Fix return ContentViewWalker instead of RawViewWalker
eltimen Oct 8, 2020
cec489c
Fix tests failure related to depth type check
eltimen Oct 8, 2020
6bcfa87
Fix failed MenuWrapperWpfTests
eltimen Oct 8, 2020
b8f9cbb
Remove duplicated and unused code, possible fix test_issue_296
eltimen Oct 9, 2020
997a657
Return _get_elements() back, get RawTreeWalker by more simple way
eltimen Oct 11, 2020
1aecf73
Add workaround to fix set_focus failure on UIA (call win32 in this case)
eltimen Oct 18, 2020
1f61216
Change RuntimeWarning text
eltimen Oct 24, 2020
62e197b
Fix condition triggering even if set_focus() was successful
eltimen Oct 25, 2020
4928fad
Refactor code, add RuntimeWarning for RawTreeWalker error
eltimen Oct 18, 2020
86d724a
Fix code review issues
eltimen Oct 31, 2020
99a2b30
Rewrite test_issue_296 to use mock context manager
eltimen Oct 31, 2020
2052ca6
Return commented FindAll-related functions and fix mistake
eltimen Nov 1, 2020
5235ee6
Merge pull request #1001 from eltimen/uia-raw-tree-walker
vasily-v-ryabov Nov 4, 2020
df8b9d3
Merge pull request #994 from eltimen/uia-setfocus-workaround
vasily-v-ryabov Nov 4, 2020
6bac310
Add "use FindAll" option to UIAElementInfo children() and descendants()
eltimen Nov 13, 2020
c089d33
Add optional usage of CreateTreeWalker to iter_children and iter_desc…
eltimen Nov 21, 2020
df6876b
Rewrite unit tests for use_property_conditions option
eltimen Nov 22, 2020
1a26a27
Remove usage of filter_with_depth from UIA backend
eltimen Nov 22, 2020
53b3800
Rename option to use_raw_view_walker, default False
eltimen Nov 28, 2020
3b463c1
Attempt to fix test_uiawrapper.WindowWrapperTests.test_issue_443
eltimen Nov 29, 2020
cc687f5
Attempt to fix test_common_controls.TreeViewAdditionalTestCases.test_…
eltimen Nov 29, 2020
812ab0a
Attempt to fix test_taskbar.TaskbarTestCases.testClickHiddenIcon
eltimen Nov 15, 2020
77f9fd0
Attempt to fix test_win32controls.CheckBoxTests.testSetCheckIndetermi…
eltimen Nov 15, 2020
c700604
rename wrapper_object() to find()
EOKruglov Dec 6, 2020
665eeab
Add RuntimeWarning suggesting to use RawViewWalker if FindAll fails
eltimen Dec 6, 2020
4a1b38d
rename .child_window() to .by()
EOKruglov Dec 6, 2020
d4b0614
mark .window() as deprecated
EOKruglov Dec 6, 2020
abaf07a
replace removed methods in internal files
EOKruglov Dec 6, 2020
68ad20e
add TypeError message in WinBaseWrapper.capture_image()
EOKruglov Dec 6, 2020
2d3ef05
changed the error message
EOKruglov Dec 6, 2020
e151098
removed legacy methods
EOKruglov Dec 6, 2020
e4c7ba2
Attempt to fix test_application.NonAdminTestCases.test_both_non_admin…
eltimen Dec 6, 2020
281d496
Fix code review issues
eltimen Dec 6, 2020
ec4e7a9
Fix code review issues
eltimen Dec 12, 2020
9f741d8
Remove unused import statement
eltimen Dec 12, 2020
34df841
Memory leak in capture_as_image() with multiple displays
ssokoly Dec 19, 2020
5c6e479
Merge pull request #1015 from eltimen/attempt-fix-flaky-tests
vasily-v-ryabov Dec 22, 2020
1c9a750
Merge pull request #1024 from ssokoly/patch-1
vasily-v-ryabov Dec 22, 2020
f449013
Remove staticmethod from get_descendants_with_depth
eltimen Dec 27, 2020
11b50ef
Add docstring to UIAElementInfo.use_raw_view_walker property
eltimen Dec 27, 2020
8f76e7d
Merge pull request #1012 from eltimen/uia-optional-findall
vasily-v-ryabov Dec 27, 2020
ce21677
docs: fix simple typo, strucrures -> structures
timgates42 Dec 28, 2020
45a00cf
Merge pull request #1027 from timgates42/bugfix_typo_structures
vasily-v-ryabov Jan 3, 2021
3f821bc
Merge pull request #1017 from EOKruglov/add_rect_assertion
vasily-v-ryabov Jan 23, 2021
35ed44d
removed wrong replacing
EOKruglov Jan 25, 2021
59f5c41
Merge remote-tracking branch 'upstream/atspi' into implement_find_met…
EOKruglov Jan 25, 2021
bcd9f7b
remove redundant import
EOKruglov Feb 7, 2021
ebb174d
Merge pull request #1016 from EOKruglov/implement_find_methods
vasily-v-ryabov Feb 7, 2021
099cb71
Refactor print_control_identifiers (increase performance)
eltimen Feb 7, 2021
1f32d10
More informative dump_tree(): always display class_name and control_type
Feb 18, 2021
098e7bd
Merge pull request #1043 from kr1zo/kr1zo-fix-dump-tree
vasily-v-ryabov Feb 28, 2021
69121be
Add new MFC VC2010 sample (built by VS 2015).
vasily-v-ryabov Feb 28, 2021
1373638
Replace recursive tree creation to stack-based in print_control_iden…
eltimen Feb 24, 2021
f759120
Add max elements tree width limit for print
eltimen Mar 2, 2021
249c746
Disable best_match names output in dump_tree if depth or max_width !=…
eltimen Mar 12, 2021
252a458
Change default depth and max_width to 10 in dump_tree
eltimen Mar 13, 2021
cba0676
Fix COMError from rectangle method (return empty RECT)
eltimen Mar 13, 2021
718ec9f
Fix dump_tree warnings output to stdout only
eltimen Mar 13, 2021
3991e2c
Rename print_control_identifiers to dump_tree
eltimen Mar 13, 2021
7d73928
Fix "max_width" message node as single element child
eltimen Mar 13, 2021
94688ad
Rename dump_tree in tests
eltimen Mar 13, 2021
bf8e509
Fix best_match-related dump_tree warning if magic lookup is disabled
eltimen Mar 13, 2021
91e1248
Merge branch 'atspi' into refactor-dump-tree
eltimen Mar 13, 2021
b747f0a
Change warnings and docs texts in dump_tree
eltimen Mar 13, 2021
242ba39
Fix tests: TypeError while logging and test_folder_list
eltimen Mar 13, 2021
7139889
Merge pull request #1049 from eltimen/refactor-dump-tree
vasily-v-ryabov Mar 15, 2021
547e4e4
Add Qt5 toolbar workaround using "win32" ToolbarWrapper.
vasily-v-ryabov Apr 3, 2021
f6c1805
Add LegacyIAccessible workaround to TabControl select() method on UIA…
eltimen Apr 4, 2021
9b19400
Get rid of "title" keyword in some places
vasily-v-ryabov Apr 18, 2021
0eaeb62
Use os.path.sep to to build module names so that docs can be built on
May 25, 2021
67becbb
Added a "Integration with Jenkins" chapter to quickly sum up the steps
May 25, 2021
708b517
Moved the 'Integration with Jenkins' section to remote_execution.txt as
cowo78 May 27, 2021
176f486
Added references to PAExec as alternative to PsExec
cowo78 May 28, 2021
64df8e1
Remove unused method WindowsSpecification._ctrl_identifiers
eltimen Apr 24, 2021
f80c1ff
Add .by() method to BaseWrapper
eltimen Apr 24, 2021
9a580ca
Add tests for WindowsSpecification created from parent wrapper
eltimen May 10, 2021
d2bd9fc
Minor changes in WindowSpecification tests
eltimen May 30, 2021
0da29f0
Handle destroyed parent case while notifying it (fix #900)
vasily-v-ryabov Jun 6, 2021
c06b15c
Add get_active() methods for Desktop and BaseWrapper (implement #760)
Feb 28, 2021
1292eed
Implement Qt5 combo box workaround (#876), add PyQt5 sample app with …
Mar 1, 2021
7e0762f
Move unit tests to correct place, rename PyQt5 sample
RadaevValentin Mar 24, 2021
c0c84dc
typo
smalinux Jun 23, 2021
e513430
Add ValuePattern workaround to SliderWrapper
eltimen Sep 12, 2021
33bffe9
Add set_value method to UIAWrapper
eltimen Sep 26, 2021
b42093d
Fix ValueError on selecting item of Qt ComboBoxes
eltimen Oct 3, 2021
4663507
Add tests for Qt ComboBox (based on PyQt5 app)
eltimen Oct 8, 2021
ce74098
Add Qt5 ComboBox workaround for items by index
eltimen Oct 8, 2021
51bb88c
Add stubs for empty values of some atspi properties
eltimen Oct 10, 2021
a4413c7
Raise ProcessNotFoundError from .cpu_usage() if process doesn't exists
eltimen Oct 17, 2021
7cc685d
Add workaround for pywin32 wheel installation error
eltimen Oct 17, 2021
d37970c
Update Python version matrix
eltimen Oct 17, 2021
969732c
Fix code review issues
eltimen Oct 31, 2021
036a52d
Add some new UIA properties (keyboard shortcut, value, legacy)
eltimen Oct 12, 2021
6065414
Fix Link in Readme
JakobDev Oct 28, 2021
799b7e3
Fix partial escaping and old .by() name in dump_tree
eltimen Nov 26, 2021
946e8ac
Fix error when writing non-ascii characters to file in dump_tree
eltimen Nov 28, 2021
d9d081d
Update of setup.py and adding sys_platform condition for pywin32 in d…
RadaevValentin Nov 26, 2021
35750c4
relocate kbd & mouse
KimNikita Nov 24, 2021
d24daed
fix import string
KimNikita Nov 24, 2021
4bb6286
fix alert(unreachable)
KimNikita Nov 24, 2021
348761e
import constants
KimNikita Dec 5, 2021
122f3a2
more constants
KimNikita Dec 5, 2021
35fb61e
fix alerts
KimNikita Dec 12, 2021
39dd0c9
fix import string
KimNikita Dec 12, 2021
7235e6f
disable codacy coverage
KimNikita Dec 12, 2021
ff980ba
removed [python3.6] and [python3.8, UIA_SUPPORT=NO] configurations, a…
EOKruglov Feb 20, 2022
1c37b74
Disable global caching of children
vasily-v-ryabov Oct 17, 2021
3df43f9
Fix missing Windows subpackage in setup.py
vasily-v-ryabov Dec 12, 2021
18d8bb4
Add workaround for invoke() method hang
eltimen Feb 20, 2022
fb4e123
trying to modify _get_control with mode attribute
EOKruglov Dec 14, 2021
fbe9bb9
move wait_state methods to BaseWrapper
EOKruglov Dec 15, 2021
df8d95a
updated timeouts for wait method
EOKruglov Dec 15, 2021
bf90c8d
added return self to wait_state methods
EOKruglov Dec 19, 2021
065940a
added wait_not method
EOKruglov Dec 21, 2021
c3d3d18
implemented find_all method
EOKruglov Dec 22, 2021
3cd7921
fixes, deprecation warning and comments
EOKruglov Dec 24, 2021
6279b34
some tests fixes
EOKruglov Dec 28, 2021
6664721
Correct exception type
EOKruglov Dec 29, 2021
a5cb017
fixed cases when TimeoutError appears instead FindBestMatchError
EOKruglov Jan 12, 2022
65d8155
fixed wait_not test
EOKruglov Jan 14, 2022
cbfad6f
changed exception in find method
EOKruglov Jan 22, 2022
47efffc
reimplemented find_all, removed wait_ready, implemented exists and no…
EOKruglov Jan 31, 2022
a7acc06
fix for tests
EOKruglov Feb 2, 2022
06dfd7b
fixed errors in wait_not and wait_state methods
EOKruglov Feb 2, 2022
5b630e1
added tests for find_all method
EOKruglov Feb 5, 2022
4066314
doc update
EOKruglov Feb 13, 2022
41df5a4
fix typo in find_all func, reimplement not_exists
EOKruglov Feb 14, 2022
432bd68
comments resolving
EOKruglov Feb 27, 2022
11e72a4
docstring and typo fixes
EOKruglov Feb 27, 2022
43b27df
add GitHub URL for PyPi
andriyor Mar 2, 2022
44ca38c
Add VK_MEDIA keys.
erikas-taroza Apr 16, 2022
5abc9a0
Added Gtk application for new atspi controls testing
RadaevValentin Apr 22, 2022
b5268f5
Added MenuWrapper for atspi
RadaevValentin Apr 22, 2022
30e0473
Added ScrollBarWrapper for atspi
RadaevValentin Apr 22, 2022
83c8c59
ci job for atspi
RadaevValentin May 23, 2022
689cd20
DropDownButton,Toolbar item_by_path for one element
EOKruglov Apr 13, 2022
66d1046
added control type to Button.items()
EOKruglov Apr 15, 2022
622531c
Handled the case with duplicated buttons on toolbar
EOKruglov Apr 18, 2022
a5b40c6
unittests fixes
EOKruglov Apr 18, 2022
c7d97d7
comments resolving, added docstring for ToolbarWrapper.item_by_path()
EOKruglov Apr 22, 2022
5e3236e
added toolbar_select method
EOKruglov Apr 23, 2022
ff68a38
added unittests for ToolBar item_by_path and toolbar_select
EOKruglov May 5, 2022
fd1d162
update toolbar methods for RebarTest
EOKruglov May 15, 2022
2ef6b71
exception type change
EOKruglov May 18, 2022
a83f10b
codacy warnings fixes
EOKruglov May 23, 2022
d6dc7d3
update exceptions
EOKruglov May 23, 2022
d13b681
added docstring for ButtonWrapper.items and exception for toolbar_sel…
EOKruglov May 27, 2022
92aa550
update exception messages
EOKruglov May 30, 2022
ca6b5c2
atspi test scenario update
RadaevValentin Jun 4, 2022
a4379c7
Updated index.txt Fixed Grammatical errors.
Aditya-Tripuraneni Jul 11, 2022
2fbdf49
Restore some backward compatibility with 0.6.8
vasily-v-ryabov Nov 3, 2022
ba727ce
Fix crash on Python>=3.9 caused by removed Thread.isAlive method
eltimen Nov 27, 2022
a36bd1f
Fix typo
beuaaa Dec 5, 2022
f78302c
add "3.11" to `appveyor.yml`
junkmd Dec 11, 2022
0c79d13
Fix Linux CI for py2.7 and some CodeQL warnings
vasily-v-ryabov Dec 11, 2022
41c8659
Add CodeQL workflow for GitHub code scanning
lgtm-migrator Nov 30, 2022
bf7f789
Fix flaky test for send_keys
vasily-v-ryabov Dec 29, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Expected Behavior


## Actual Behavior


## Steps to Reproduce the Problem

1.
2.
3.

## Short Example of Code to Demonstrate the Problem


## Specifications

- Pywinauto version:
- Python version and bitness:
- Platform and OS:
97 changes: 97 additions & 0 deletions .github/workflows/atspi_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: atspi CI
on:
push:
branches: [ "atspi" ]
pull_request:
branches: [ "atspi" ]
jobs:
Linux:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os : [ubuntu-18.04, ubuntu-20.04]
python: [ '2.7', '3.7', '3.8', '3.9', '3.10', '3.11' ]
exclude:
- os: ubuntu-20.04
python: '2.7'
- os: ubuntu-20.04
python: '3.7'
- os: ubuntu-20.04
python: '3.8'
- os: ubuntu-18.04
python: '3.9'
- os: ubuntu-18.04
python: '3.10'
- os: ubuntu-18.04
python: '3.11'
env:
DISPLAY: ':0'
steps:
- name: get repo
uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
sudo apt update -y
sudo apt upgrade
sudo apt install -y --no-install-recommends python-setuptools tk-dev python-tk
sudo apt install -y --no-install-recommends python3 python3-pip python3-setuptools
sudo apt install -y --no-install-recommends python-xlib
sudo apt install -y --no-install-recommends xsel
sudo apt install -y libjavascriptcoregtk-4.0-18
pip install coverage codecov
pip install python-xlib --upgrade
pip install mock --upgrade
python -m pip install pytest
sudo apt install -y build-essential libssl-dev
sudo apt install -y qt5-default
sudo apt install -y libxkbcommon-x11-0
sudo apt install -y python3-gi gobject-introspection gir1.2-gtk-3.0
sudo apt install -y at-spi2-core
sudo apt install -y python3-pyatspi
sudo apt install -y xvfb x11-utils libxkbcommon-x11-0 \
libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \
libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 xdotool
#pip3 install scikit-build # required for cmake>=3.23.0
pip3 install cmake==3.22.6

- name: Install test apps
run: |
git init apps
cd apps
git remote add -f origin https://github.com/pywinauto/PywinautoTestapps/
git config core.sparseCheckout true
echo "MouseTester/source" >> .git/info/sparse-checkout
echo "SendKeysTester/source" >> .git/info/sparse-checkout
git pull origin master
cd MouseTester/source
qmake
make
chmod a+x mousebuttons
cp mousebuttons ../
cd ../..
cd SendKeysTester/source
qmake
make
chmod a+x send_keys_test_app
cp send_keys_test_app ../
export XDG_RUNTIME_DIR=/tmp/runtime-runner
- name: Remote display start
run: |
sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
sleep 5
set +eE
sudo apt install -y gdm3
sudo service gdm start
sleep 5
- name: Run tests
run: |
coverage run -m pytest pywinauto/unittests/test_atspi_element_info.py pywinauto/unittests/test_atspi_wrapper.py pywinauto/unittests/test_atspi_controls.py pywinauto/unittests/test_clipboard_linux.py pywinauto/unittests/test_keyboard.py pywinauto/unittests/test_application_linux.py
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v3
41 changes: 41 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: "CodeQL"

on:
push:
branches: [ "atspi", "0_7_x", "macos", "master" ]
pull_request:
branches: [ "atspi" ]
schedule:
- cron: "30 14 * * 3"

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ python ]

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
queries: +security-and-quality

- name: Autobuild
uses: github/codeql-action/autobuild@v2

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{ matrix.language }}"
30 changes: 18 additions & 12 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,37 @@
sudo: required
dist: trusty
dist: xenial
language: cpp
notifications:
email: false

services:
xvfb

language: python

python:
#- "2.6"
- "2.7"
- "3.3"
- "3.4"
- "3.5"
- "3.6"
- "3.7"
- "3.8"
os:
- linux
before_install:
- sudo add-apt-repository -y ppa:beineri/opt-qt58-trusty
- sudo add-apt-repository -y ppa:beineri/opt-qt58-xenial

install:
- pip install python-xlib codecov coverage
# All this dependencies only to build tests application. No real dependency of this packages
- sudo apt-get update
- sudo apt-get install -qq qt58base;
- sudo apt-get -y install at-spi2-core
- sudo apt-get install -qq qt58base;
- sudo apt-get -y install qt58declarative qt58tools
- sudo apt-get install xsel
- sudo apt-get install libgtk-3-dev libgtk2.0-dev
- sudo apt-get install -y python3-gi
- sudo apt-get install --reinstall libgl1-mesa-dev
- source /opt/qt58/bin/qt58-env.sh;

before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3 # give xvfb some time to start
- xauth generate :99.0 . trusted
# Clone test apps
- git init apps
Expand All @@ -53,11 +54,16 @@ before_script:
- chmod a+x send_keys_test_app
- cp send_keys_test_app ../
- cd $TRAVIS_BUILD_DIR
- chmod a+x $TRAVIS_BUILD_DIR/apps/Gtk_samples/gtk_example.py

script:
- coverage run -a --include=pywinauto/mouse.py pywinauto/unittests/test_mouse.py
- coverage run -a --include=pywinauto/linux/keyboard.py pywinauto/unittests/test_keyboard.py
- coverage run -a --include=pywinauto/linux/clipboard.py pywinauto/unittests/test_clipboard_linux.py
- coverage run -a --include=pywinauto/linux/application.py pywinauto/unittests/test_application_linux.py
- coverage run -a --source=pywinauto/linux,pywinauto/controls pywinauto/unittests/test_atspi_element_info.py
- coverage run -a --source=pywinauto/linux,pywinauto/controls pywinauto/unittests/test_atspi_wrapper.py
- coverage run -a --source=pywinauto/linux,pywinauto/controls pywinauto/unittests/test_atspi_controls.py

after_success:
- codecov
- codecov
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Properties.wait_not('visible') # make sure the dialog is closed

### Dependencies (if install manually)
* Windows:
- [pyWin32](https://sourceforge.net/projects/pywin32/files/pywin32/)
- [pyWin32](https://github.com/mhammond/pywin32/)
- [comtypes](https://github.com/enthought/comtypes)
- [six](https://pypi.python.org/pypi/six)
* Linux:
Expand Down
30 changes: 13 additions & 17 deletions Readme.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pywinauto
(c) Mark Mc Mahon 2006-2015
Released under the LGPL v2.1 or later
(c) Mark Mc Mahon 2006-2010, Intel Corporation 2015-2016, Open Source community 2016-2019
Released under BSD 3-clause license


What is it
Expand All @@ -14,14 +14,15 @@ Manual Installation
------------
Install the following Python packages
(Required) pyWin32 http://sourceforge.net/projects/pywin32/files/pywin32/
(Required) comtypes https://github.com/enthought/comtypes
(Optional) PIL http://www.pythonware.com/products/pil/index.htm
Unzip the pywinauto zip file to a folder.
Run "python setup.py install"

To check you have it installed correctly
run in Python REPL:
>>> from pywinauto.application import Application
>>> app = Application.start("notepad.exe")
>>> from pywinauto import Application
>>> app = Application(backend="uia").start("notepad.exe")
>>> app.UntitledNotepad.type_keys("%FX")

Installation in silent mode (Python 2.7, 3.3+)
Expand All @@ -37,7 +38,7 @@ It explains the core concept, how to choose appropriate backend, spy tools and m
We also have several examples installed along with the pywinauto demonstrating the work with
Notepad, MSPaint, WireShark, explorer.exe and etc.
https://github.com/pywinauto/pywinauto/tree/master/examples
Notice though these examples designed to work only on a system with English localization.
All the examples designed to work only on a system with English as OS interface language.


How does it work
Expand Down Expand Up @@ -82,25 +83,20 @@ wait for the transition to a new state like so ::


Several similar tools for comparison
---------------------------------
* Python tools

- PyAutoGui
- AXUI
- winGuiAuto

* Other scripting language tools

- Perl Win32::GuiTest
- Ruby Win32-Autogui
------------------------------------
See rating of competitors in the open source field (updated every month):
https://github.com/pywinauto/pywinauto/wiki/UI-Automation-tools-ratings

* Other free tools

- AutoIt
- See a collection at: https://github.com/atinfo/awesome-test-automation

* Commercial tools

- TestComplete
- Squish
- HP UFT (former QTP)
- LeanFT
- WinRunner
- SilkTest
- Many Others
Loading