Shadow Dom Kullanımı

Giriş

Modern web uygulamalarında, bileşen bazlı mimarilerin yaygınlaşmasıyla birlikte Shadow DOM kullanımı artmıştır. Shadow DOM, bir bileşenin iç yapısını dış dünyadan izole ederek daha güvenli, bakımı kolay ve çakışmalara kapalı bir yapı sunar. Ancak bu izolasyon, otomasyon ve test süreçlerinde elementlere erişimi zorlaştıran teknik kısıtlar doğurur. Shadow DOM kullanılan ekranlarda klasik XPath yöntemleri geçerli değildir. Bu nedenle JavaScript tabanlı Shadow Root erişimi tercih edilmelidir.

  • Shadow DOM Nedir?

Shadow DOM, bir HTML elementinin altında çalışan ve ana DOM ağacından izole edilmiş bir alt DOM yapısıdır.

  • Nested Shadow Dom Nedir?

Nested Shadow DOM, bir Shadow DOM’un içinde başka bir Shadow DOM bulunması durumudur. Yani Shadow DOM’ların birden fazla katman halinde iç içe kullanılmasıdır.

  • Open vs Closed Shadow Root

Open shadow root JavaScript ile erişilebilirken, closed shadow root dışarıdan erişime kapalıdır.

  • Selector Davranışına Etkisi

Shadow DOM kullanılan yapılarda XPath ve klasik CSS selector’lar doğrudan çalışmaz. Elementlere erişim için shadow-aware selector’lar veya JavaScript tabanlı yöntemler kullanılmalıdır.

  • Shadow Root Tespiti

Chrome DevTools üzerinden #shadow-root (open) ifadesi ile tespit edilebilir. Element ağacında aşağıdaki yapı aranır.

<Custom Component>

#shadow-root (open)

  • Shadow DOM İçinde Element Seçimi

Selector zinciri host element → shadow root → hedef element şeklinde ilerler.

Örnek:

book-app >>> #input-user

  • Nested Shadow DOM Kullanımı

Bazı uygulamalarda shadow root yapıları iç içe olabilir.

  • Selector örneği:

book-app >>> book-explore >>> #input-user

Kullanım Şekli (Tüm web aktiviteleri için aynıdır örnek Web Page Click üzerinden gösterilmiştir.)

Özellikler

1.Shadow Dom

2.Nested Shadow Dom

Inputs

  • Control Type

    • Veri Tipi: Control Type

    • Açıklama: Tıklama işlemi yapılacak öğeyi tanımlamak için kullanılacak yolun türünü belirtir (ShadowDom ya da NestedShadowDom).

    • Örnek Kullanım:

      • Shadow Dom

      • Nested Shadow Dom

  • Control Value

    • Veri Tipi: Text

    • Açıklama: İşlem yapılacak öğeyi tanımlayan yol veya seçici değeri.

    • Örnek Kullanım:

      • Shadow Dom: book-app >>> #input-user

      • Nested Shadow Dom: book-app >>> book-explore >>> #input-user

  • Event Type

    • Veri Tipi: Text

    • Açıklama: Tıklama işleminin türünü belirler. JavaScript tabanlı bir tetikleme seçilir.

    • Örnek Kullanım:

      • JavaScript: JavaScript kullanılarak tıklama işlemi gerçekleştirilir.

  • Timeout

    • Veri Tipi: Number

    • Açıklama: İşlem sırasında tarayıcı üzerinden yanıt alınamazsa kaç saniye boyunca beklenmesi gerektiğini belirtir.

    • Örnek Kullanım:

      • 5: 5 saniye beklenir.

      • 10: 10 saniye beklenir.

Outputs : Aktivite herhangi bir çıktı sunmamaktadır.

Last updated