2016-04-05 12 views
1

JavaScript ile bir erişim anahtarına basmanın benzetimini yapmanın bir yolu olup olmadığını merak ediyordum.JavaScript simulate Accesskey-Press

<button accesskey="z">click</button> 

İşte (Chrome'da ALT + Z tuşlarına) jQuery ile benim yaklaşımdır: Aşağıdaki html ile çalışmalıdır

var e = $.Event("keypress"); 
e.which = 90; 
e.altKey = true; 
$('button').trigger(e); 

Ama şu ana kadar çalışmayacaktır. Ben özellikle erişim anahtarını test etmek istiyorum, sadece JavaScript üzerinden butona tıklayarak aradığım çözüm değil.

+0

Neden özellikle bu test etmek gerekiyor [Düzenlendi cevap, farklı teknoloji gereklidir gibi görünüyor]? – Yoda

+0

hedefi, çoklu platformlarda otomatik testler için bir test kullanımı oluşturmaktır (doğru tuş bileşimi için tarayıcıyı koklayacağım) – user2043423

cevap

1

Bunu başarmak için Selenium gibi bir şey kullanmak zorunda kalacaksınız. Konuyla ilgili bulabildiğim tüm kaynakları okudum ve jsFiddle'da denedim. Tarayıcı, tıpkı bir fare çubuğu gibi bir erişim anahtarı olayını ele alır. Olay meta verilerini tetiklemeyi başarmış olsanız bile, kaynağın bir fare tıklaması olduğunu varsayarak kesin olarak doğrulayamazsınız.

DOM'ın tüm düzeylerinde ve tüm önemli olay türlerinde tuş bileşimini tetiklemeye çalıştım; bu, erişim anahtarı işlevinin API düzeyinde değil tarayıcı düzeyinde olduğunu gösterir.

Selenium

+0

Yardımlarınız için teşekkür ederiz. Tam olarak denediğim şey değildi. Ben bir tıklama dinleyicisi ile keypress dinleyici yerini [https://jsfiddle.net/zzscn8xj/1/](https://jsfiddle.net/zzscn8xj/1/] Benim anlayışından itibaren dinleyici de tetiklenmelidir (olarak accesskey kombinasyonuna kendim basarsam) – user2043423

+0

Sorunu görüyorum, yeniden düşünün. – Yoda

+1

Bu talihsiz ama gerçekten imkansız görünüyor. Çabalarınız için çok teşekkürler, takdir et – user2043423