Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

State of WinAppDriver #1371

Open
kat-y opened this issue Nov 18, 2020 · 82 comments
Open

State of WinAppDriver #1371

kat-y opened this issue Nov 18, 2020 · 82 comments

Comments

@kat-y
Copy link

kat-y commented Nov 18, 2020

Hi everyone, I (@kat-y) am the new Program Manager for WinAppDriver, so please feel free to direct your questions and concerns my way. I’d like to address the limbo and uncertainty around WinAppDriver – much of this is due to an internal transition of WinAppDriver ownership within the company, where it recently moved closer to the team that owns and supports our modern native Windows UI frameworks. This transition is complete, and WinAppDriver now lives with the same team that owns WinUI, WPF, React Native for Windows + macOS, and other products such as the Windows Terminal.

Presently, the team’s focus is on these aforementioned UI Frameworks. This means that, for the next ~6+ months, WinAppDriver development will remain paused. In the interim, we’ll be working in the repo with the community to construct an execution plan for when we do bring dev resources back to WinAppDriver.

Also, as I’ve been ramping up, I’ve taken notice at the many requests for WinAppDriver to be open-sourced. Open sourcing is a lot like any feature we’d consider adding to WinAppDriver: it takes resources to do it since we have to ensure the code is free of private APIs, represents modern OSS standards for Microsoft, has processes & license agreements properly reviewed by our legal team, etc. So ‘going open source’ is definitely on the list of things for the future of WinAppDriver, but this will also have to wait until we can apply more resources to the project in general. I’m looking forward to when we’ll be able to do that.

If you have any questions about what I wrote above, or about WinAppDriver in general, please reach out and ask. Thanks, I’m excited to have a chance to work with this great community!

Please note that a more recent update is #1150

@444ghost
Copy link

Hello,

I hope you do your best to bring back the dev resources to WinAppDriver asap. It seems like there's a memory-leak-related bug in WinAppDriver which I think it's very critical, and it has been around for almost 2 years but has not been knocked out.

#991

Thanks.

@oren451
Copy link

oren451 commented Nov 19, 2020

Hi @kat-y!
Joining other users hopes WAD returns to be under dev.
A lot of product refinements need to go through to be the next thing, here some examples:

  • Improve by far WAD finding element algorithms speed
  • Many bugs, some critical to fix
  • Create sessions over HWND of not top-level screens
  • Extend the supported API
  • Insert UI Automation API to WAD API (Instead using getAttribute('LegacyIAccessible.State')
  • WinAppDriver need to be open-sourced
  • Supporting also Java UI technologies
  • Supporting ActiveX elements

Thanks and Good Luck!

@Daniwin82
Copy link

thanks for the update

@anunay1
Copy link

anunay1 commented Nov 19, 2020

I have around 200 test cases implemented with WAD, but off late I am started observing after running for 3 to 4 hours the send keys API starts behaving weirdly, the API is not disposed properly even after driver.quit. its starts sending weird characters.

@anunay1
Copy link

anunay1 commented Nov 19, 2020

Also it will be good to have logs with time stamp as the console logs are not very helpful.

@kat-y kat-y pinned this issue Nov 19, 2020
@Wolfe1
Copy link

Wolfe1 commented Nov 19, 2020

Thanks for the update, hope to see resources here soon!

I would suggest running through the open pull requests and merging the ones that still make sense to start cleaning up this github. The issues tab will be its own beast 😟

@mattboroi
Copy link

@kat-y, looking for information regarding the publicly available Microsoft.WinAppDriver.Appium.WebDriver NuGet package.

  • What are the similarities and differences between the Microsoft.WinAppDriver.Appium.WebDriver NuGet package and WinAppDriver released on GitHub?
  • Are there plans for a WinAppDriver NuGet package that reflects the latest release on GitHub?

I did attempt to research open/closed GitHub issues and the Wiki/FAQ although I had not come across information regarding when or how to use the NuGet package verse installing the GitHub release.

Any information would be greatly appreciated and I'm very excited about all the recent activity behind this project and what it will produce for the community.

@varun210619
Copy link

Hi @kat-y
Really good to see WinAppDriver is up and running. Hope there will be many enhancements to the tool in near future.

Could you please look into below issues-

#507
I work in Nordic company and we work on Danish, Swedish, Finnish keyboards.
When I send keys with value XXX-XX, winappdriver prints XXX+XX. Although there are many workarounds for typing correct required values, but please see if you can priotize it.

#1357
My automation scripts contains many steps and sometimes I am required to use xpath.
To validate any relative xpath, i have to execute whole script till the step where xpath is used. This consumes lot of time.
Is it possible to create additional utility on top of winappdriver, where i just enter my xpath and tool highlights that element or provide an error.
I am looking for utility similar console provided in chrome where i can enter xpath and css to validate in web application.

#1378
I am finding winappdriver performance very slow. It takes a long time in step execution where xpath is used or where any table/grids appear.
Even with tree views, it is very slow in execution.

#1361
LegacyAccessible.Value attribute not working in winappdriver. No LegacyAccessible properties work with winappdriver.
Sometimes, this is the only property to be used uniquely, but due to this issue, it becomes a bottleneck.

#975
Fortunately i was able to get the developer settings enabled in my company, but it could be a show stopper or delay in getting these settings.

#1103
You may close this one since WinAppDriver is up and alive :)

More enhancements but i have not opened any issues for these -
I dont want to launch winappdriver.exe manually or even in the code. Is it possible that WindowsDriver itself deals with this whenever WinDowsDriver object is created.

@HenningL
Copy link

Highest priority for me would be the issue with processId not found. It seems for me that this is a general windows problem which might get compensated whith some internal knowledge. I recognized for some application (e.g. calc.exe) that even if i start the ".exe" programmatically and retrive the pid , when i insepect or watch tasklist, this pid doesnt even exist anywhere. The binding pid to session is the biggest hurdle to even start with WAD.

@liljohnak
Copy link

Would it be possible to implement scroll logic?

@rameshrc
Copy link

rameshrc commented Dec 4, 2020

why do we need to install WinAppDriver.exe?

@riverar
Copy link

riverar commented Dec 5, 2020

I think first and foremost, the README.md should reflect that new management has taken over and point to the new, supported feedback channels. I, and I'm sure other windev mvps, would love to help mop up too. (Feel free to reach out to the Windows Development alias; @DHowett @crutkas and others can help route.)

@fforjan
Copy link
Contributor

fforjan commented Dec 14, 2020

In our case, we are still doing desktop application, engineering type, meaning we are testing that the application can test a workflow for 3 to 8 hours in a row. (Same as if you were testing Visual Studio)
We have concern that Appium is having issues like memory leaks and will not be able to manage such use cases.

I would be also interested to see a white paper/blog post nowadays for usage of Appium in complex application like Visual Studio or Word and its integration into CI (CD?) workflows

@daniel-bsci
Copy link

daniel-bsci commented Dec 14, 2020

We are looking into using WAD for our testing needs of WPF applications. But the production environment is heavily regulated and being forced to enable developer mode on system under test might be a deal breaker. Seems it should not be needed to automate WPF apps so removing that requirement is high on our list.

@liljohnak
Copy link

@daniel-bsci we are using it just fine with your specs. Also using chromedriver to test our chef embedded controls. Product does not ship with developer mode, just tested. Is there a benefit to your request?

@daniel-bsci
Copy link

@liljohnak I updated my post to clarify. Our devices are highly regulated, which includes changes to the OS. Not sure our QA would buy performing formal testing on a device with developer mode on when it won't be enabled in production.

@jayaprakashkottapalli
Copy link

Hi Kat-y,
Congrats on your new role.

we are looking for a fix for an issue where running the appium for updating the value in the combobox/editbox available in a cell on windows application using infragistic wpf(19.1.20191.208) grid control takes lot of time locating the control within the cell.

Please could you let us know if we could get an resolution in the coming release:
#1052

@liljohnak
Copy link

Thought of another weird thing: .FindElementsByClassName() will return the parent element if the class name maches the search's class name. I do not think that this is the intent that anyone wants so would be nice to remove this behavior if possible. We added a check to to exclude the .Id from the list if it matches the parent.Id

@liljohnak
Copy link

We have WinAppDriver failing when the UI thread is locked in the App. We have our own wait that works around this, but maybe consider adding a capability of how long an acceptable ui lock should be.
Bottom of this comment:
#550 (comment)

@leticiafer
Copy link

@liljohnak Is it possible to use WindowsDriver session = new WindowsDriver(new Uri("http://127.0.0.1:4723"), appCapabilities, TimeSpan.FromMinutes(10)); in java?

@Wolfe1
Copy link

Wolfe1 commented Feb 17, 2021

@kat-y Any kind of roadmap or developments you can share?

@ben-polinsky
Copy link

@ashkaps While I am also feeling less than optimistic that WinAppDriver will continue, I think we should wait for word from @kat-y. Our frustrations are understandable, and we are assuming/reading in between the lines that MS will not have time to come back to this in any meaningful way. That's not a definite, though.

@kat-y @DHowett - What we'd really appreciate is an honest, realistic look at this project and Microsoft's resources to maintain and/or open source it. If the best you can give is another lengthy wait, then yes, we should all look in a different direction. But if there is a real path forward, then it is clear there is a robust community here to help. I can also say that my initial product tests using WinAppDriver were incredibly well received by my company, and it will be a massively popular tool with Windows desktop devs should it continue be to developed.

@jlipps
Copy link

jlipps commented May 24, 2021

hi all, given that Appium would like to continue to support Windows automation whether or not WAD revives, are there suggestions for the most promising tool to base a new Windows driver on? I can't guarantee any Appium development resources on this at the moment, but would like to understand the landscape and see what's possible.

@specificJyurkiw
Copy link

specificJyurkiw commented May 24, 2021

@jlipps FlaUI is what I've been using. It's been working very, very well and the underlying UIA3 is extremely powerful. I remember reading somewhere that WAD was also based on UIA3 at its lowest levels, so this is probably purely a middleware problem.

@ashkaps
Copy link

ashkaps commented May 27, 2021

hi all, given that Appium would like to continue to support Windows automation whether or not WAD revives, are there suggestions for the most promising tool to base a new Windows driver on? I can't guarantee any Appium development resources on this at the moment, but would like to understand the landscape and see what's possible.

Hi @jlipps based on what I have learned so far on this ticket, I think FLAUI, a .NET library, is a possible heir. I don't think it is written using gRPC so the portability is a challenge. Karate is a Java wrapper for FLAUI.
I would be more than willing to contribute in any way to get a good tool to the community that serves windows automation. It's a real pain.

@jlipps
Copy link

jlipps commented May 27, 2021

Awesome feedback, thanks. I'm not a .NET developer, and there would need to be some kind of Node.js component to interface with the Appium server. I'm not sure how Microsoft makes its UIA3 library available. Is it some kind of interface you have to bind against in native code? It would be sweet if there was a low level gRPC frontend that we could just write a Node wrapper around. Failing that, we would probably need to do the same kind of thing that Karate does in Java, but in Node. Again, I'm not a windows developer, but is there an easy way to write a C++ or .NET gRPC server that does some simple bindings to the UIA3 interface?

@jpeltonen
Copy link

jpeltonen commented May 27, 2021

This is the recommended gRPC server for .NET https://github.com/grpc/grpc-dotnet
You just have to implement protobuf interface for FlaUI to be able to use either UIA2 or UIA3. You can load both UIA2 and UIA3 to gRPC server when it attaches AUT and decide which one of those to use when calling some rpc in grpc server which does mouse click using FlaUI for example. From protobuf file you can then create FlaUI gRPC server clients for any language.

@Wolfe1
Copy link

Wolfe1 commented Jun 29, 2021

"This means that, for the next ~6+ months, WinAppDriver development will remain paused."

@kat-y Any update on resourcing for WinAppDriver now that we are 7 months out from this update?

@kat-y
Copy link
Author

kat-y commented Jul 1, 2021

Thank you all so much for your patience. We've shared a new update on the state of WinAppDriver in #1550 , I'll be closing this thread and have taken note of the comments and concerns raised here. Please feel free to leave any thoughts or feedback on 1550!

@mrlacey
Copy link

mrlacey commented Jul 1, 2021

Thank you all so much for your patience. We've shared a new update on the state of WinAppDriver in #1550 , I'll be closing this thread and have taken note of the comments and concerns raised here. Please feel free to leave any thoughts or feedback on 1550!

For future reference, closing an issue with lots of feedback and negative comments and replacing it with a new issue that essentially says nothing has changed is not good for encouraging engagement and maintaining a healthy community.
I'm sure that's not your intention but this action could easily be interpreted as being a way to hide negative feedback or indicate progress is being made when it isn't.

@kat-y
Copy link
Author

kat-y commented Jul 1, 2021

@mrlacey Thank you for the feedback! That's definitely not my intention, and I've reopened (though un-pinned) this issue for now.

I still encourage any discussion to be on #1550 as that has the most up-to-date info on our team's resourcing and commitments with WinAppDriver.

@SashaSherman-QA
Copy link

Hi, what about support for Windows Server 2016, Windows Server 2019? Our app is running on Server. Can I test it with WinAppDriver?
Thanks, Sasha.

@ashkaps
Copy link

ashkaps commented Dec 18, 2021

Windows server 2019 works good.
2016 should work too. Below that there is no support.

@daluu
Copy link

daluu commented Dec 18, 2021

So what operating system versions are supported again?

@ashkaps
Copy link

ashkaps commented Dec 18, 2021

Windows server 2019 and 2016 work fine. Windows 10 work fine.
Everything else I would not say would work.

@Xypla
Copy link

Xypla commented Mar 10, 2022

Is WinAppDriver still under active development ? Or are there any alternatives ?

@HenningL
Copy link

Our company has an alternative, but its not for free. As i can see there is nothing out there

@ashkaps
Copy link

ashkaps commented Mar 10, 2022

@Xypla to my knowledge, there is none under opensource umbrella. You can use sikuli to some extent to ease the pains in WinAppdriver but that marriage is difficult to make stable.

@HenningL what's that alternative? What's the name of your company?

@HenningL
Copy link

@ashkaps its munich based testifi(dot)io and our toolcain is used by big car manufacturer

@jlipps
Copy link

jlipps commented Mar 10, 2022

#1550

@southernsun
Copy link

Is WinAppDriver still under active development ? Or are there any alternatives ?

yes, i would be interested to hear about this as well.

@leohaeu
Copy link

leohaeu commented May 24, 2023

In Python this works for me:

from pynput.keyboard import Key, Controller
import time

keyboard = Controller()

time.sleep(1)

for char in "\\ hallo":
    keyboard.press(char)
    keyboard.release(char)
    time.sleep(0.12)

@pa-0
Copy link

pa-0 commented May 8, 2024

Just FYI to those people asking about an alternative:

It looks like the author of FlaUI is actively developing an open source alternative. They seem to know their stuff and are very responsive to issues & helpful. I'd check that out.

Hope this helps.

@ChristoWolf
Copy link

Yep, and looks like they even support the newest WebDriver standard, pretty awesome stuff!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests