Rasgele bir Windows uygulamasında bazı otomasyon yapan bir uygulamam var. Test etmek için Notepad kullanıyorum.UIAutomation ve Uzak Masaüstü Bağlantıları
Bu otomasyon sırasında, koddan olayları çağırmak zorundayım. Şu anda en yaygın, InvokePattern ve ExpandCollapsePattern olduğu için iki tür etkinliği destekliyorum.
Sınama yapmak için masaüstüne uzaktan erişebileceğim bir bilgisayar kullanıyorum. Ama garip. Uzak Masaüstü aracılığıyla bilgisayara bağlandığımda, uygulama iyi çalışıyor. Bilgisayardan çıktığımda, kodum ExpandCollapsePattern (InvokePattern iyi çalışıyor) için çalışmayı durdurur. InvalidOperationException alıyorum.
Belgeler, bunun yalnızca düğümü bir LeafNode olarak işaretlenmişse atılması gerektiğini söylüyor. Uzak Masaüstü'nü InvalidOperationException aldığımdan farklı kılan nedir?
Şu anda bu olayı gerçekleştirmem gereken kod var.
ExpandCollapseState state =
patternMenu.Current.ExpandCollapseState;
if (state == ExpandCollapseState.Expanded)
patternMenu.Collapse();
else if (state == ExpandCollapseState.PartiallyExpanded ||
state == ExpandCollapseState.Collapsed)
patternMenu.Expand();
patternMenu AutomationElement kullanılarak GetCurrentPattern kazanılmış bir ExpandCollapsePattern olup.
ExpandCollapseState'ın geçerli değeri, değeri yazdırdığımda "Daraltılmış" olur.
DÜZENLEME: Neden bir downvote aldığımı ve bunun nasıl kötü bir soru olduğunu anlayabildiğim bir ihtimal var mı? Gerçekten uzak masaüstü kapalı olduğunda başarısız gibi görünüyor, aslında neler olup bittiğini. Eğer bu cevabı bilmem gereken gerçekten aptal bir soru ise, bir açıklama ve daha sonra bir düşüşü çok isterim.
Masaüstüyle etkileşime giren işlem bir Windows servisi değildir. Uzak masaüstünü bilgisayara girdikten sonra başladığım bir uygulamadır. Masaüstüyi kilitlediğimden mi?
Windows makinesinde oturum açmak için Ubuntu'da "Terminal Server Client" kullanıyorum. Bu uygulamadaki kapat düğmesine basmak masaüstünün kilitlenmesine neden oluyor mu?
Masaüstü kilitlendiğinde iyi çalıştığını düşündüm. , ama yanılmışım.Masaüstü kendini kilitlediğinde en son test sonucu başarısız oldu. Uzak masaüstü kullanmak yerine testleri çalıştırmak için bir VM kurmaya başlayacağım. Teşekkürler. –