Tıklama sorunları

"Öğe tıklanabilir değil" hatası

ChromeDriver tıklaması, öğenin ilk istemci dizininin (veya birinci istemci dikdörtgeni yoksa sınırlayıcı istemci dikdörtgeninin) ortasındaki bir fare tıklamasının simüle edilmesiyle çalışır. ChromeDriver'ın nereye tıklamaya çalıştığını öğrenmenin en kolay yolu, Chrome geliştirici araçlarını açmak ve tıklama işleminiz çağrılmadan hemen önce tıklanacak öğeyi incelemektir. Denetleyicide öğeyi seçin ve aşağıda gösterildiği gibi, öğenin istemci dikdörtgenlerini temsil eden mavi kutulara dikkat edin. ChromeDriver, ilkinin ortasını tıklamayı dener.

ChromeDriver, "Öğe tıklanabilir değil" hatasını verirse bunun nedeni büyük olasılıkla söz konusu konumun kullanıcı tarafından tıklanabilir olmamasıdır. Test etmek için imlecinizi ilk istemcinin ortasına getirin ve söz konusu konumun tıklanabilir olup olmadığına bakın.

Yukarıdaki örnekte test, sabit öğeyi tıklamaya çalışmıştır. Bu durumda çapa tıklanabilir değildir. Yalnızca alt resim tıklanabilir. Resim öğesindeki margin-bottom stili nedeniyle, bağlantı öğesinin ortası tıklanabilir resim sınırlarının dışına düştüğünden ChromeDriver hata verir. Konumlandırma veya boyutlandırmanın nasıl belirlendiği hakkında daha fazla bilgi için W3 spesifikasyonuna bakın. Yukarıdaki durumu düzeltmek için çapa yerine resmi tıklayın.

"Öğe tıklanabilir değil" hatası genellikle bir test aşağıdakileri yapmaya çalıştığında aşağıdaki durumlarda ortaya çıkar:

  • Tıklanabilir alt öğeleri bağlantı sınırları (yukarıda olduğu gibi) içinde olmayan bir bağlayıcıyı tıklayın
  • Başka bir öğenin altındaki bir öğeyi tamamen veya kısmen tıklama
  • Sabit bir yer paylaşımı olduğunda ekranın dışında bir öğeyi tıklayın (öğe görünümün içine kaydırılır ancak sabit yer paylaşımının altında kaydırılabilir)
  • Ortasında tıklanabilir olmayan bir öğeyi (ör. bazı dışbükey SVG öğesi türleri) tıklayın

Bu sorunlar genellikle belirli bir öğenin alt öğesi tıklanarak, engelleme öğesinin programlı bir şekilde kaldırılması veya gizlenmesi, gelişmiş etkileşimler API'sinin kullanılarak öğenin sol üst tarafından belirli bir uzaklıkta tıklanması ya da JavaScript'te bir fare tıklama etkinliğinin simüle edilmesiyle çözülebilir.

"Öğe tıklanabilir değil" hatası

Bu durum büyük olasılıkla, ChromeDriver'ın öğenin konumunu belirlemesinden bir süre sonra öğenin konumunun değişmesi, ancak ChromeDriver gerçekte ilgili konumda bir tıklama verilmesinden önce ortaya çıkmasıdır.

Sorununuzun bu olup olmadığını belirlemek için tıklamayla ilgili istisnayı yakalayın ve öğenin mevcut konumunu ve boyutunu derhal günlüğe kaydedin. Bunu, ChromeDriver'ın istisnayı tıklamaya çalıştığını bildirdiği konumla karşılaştırın ve farklı olup olmadıklarına bakın. Öyleyse öğenin hareket etmesini durdurmasını beklemeniz veya tekrar tıklamayı denemeniz gerekir. Değilse, sorunu yeniden oluşturmak için kullanılabilecek küçük bir test sayfasıyla hata bildirin (sorunu ara sıra tetiklese bile).

ChromeDriver, hareketli bir öğeyi tıklayamıyor

Bu, ChromeDriver'ın desteklenen bir özelliği değildir. Öğe sonunda durursa bunun gerçekleşmesini bekleyin. Öğenin hareketi hiç durmazsa ChromeDriver, tıklamanın başarılı olacağını garanti etmez.