Chrome Geliştirici Araçları Kaydedici panelinin kapsamlı özellik referansında kullanıcı akışlarını paylaşma, düzenleme ve adımlarını değiştirme yöntemlerini keşfedin.
Kaydedici paneliyle çalışmanın temellerini öğrenmek için Kullanıcı akışlarını kaydetme, tekrar oynatma ve ölçme başlıklı makaleyi inceleyin.
Kısayolları öğrenin ve özelleştirin
Kaydedici'de daha hızlı gezinmek için kısayolları kullanın. Varsayılan kısayolların listesi için Kaydedici paneli klavye kısayolları başlıklı makaleyi inceleyin.
Tüm kısayolların listesini doğrudan Kaydedici'de görmek için sağ üst köşedeki
Kısayolları göster'i tıklayın.Kaydedici kısayollarını özelleştirmek için:
- Ayarlar > Kısayollar'ı açın.
- Kaydedici bölümüne ilerleyin.
- Kısayolları özelleştirme başlıklı makaledeki adımları uygulayın.
Kullanıcı işlemlerini düzenleme
Kaydedici panelinin üst kısmında şunları yapabilirsiniz:
- Yeni bir kayıt ekleyin. Yeni kayıt eklemek için + simgesini tıklayın.
- Tüm kayıtları görüntüleyin. Açılır liste, kaydedilen kayıtların listesini gösterir. Kayıtlı kayıtların listesini genişletip yönetmek için [sayı] kayıt seçeneğini belirleyin.
Kaydı dışa aktarma. Komut dosyasını daha da özelleştirmek veya hata raporlama amacıyla paylaşmak için kullanıcı akışını aşağıdaki biçimlerden birinde dışa aktarabilirsiniz:
- JSON dosyası.
- @puppeteer/replay komut dosyasını kullanın.
- Puppeteer komut dosyası.
- Puppeteer (Lighthouse analizi dahil).
Biçimler hakkında daha fazla bilgi için Kullanıcı akışını dışa aktarma başlıklı makaleyi inceleyin.
Kaydı içe aktarın. Yalnızca JSON biçiminde.
Kayıt silme. Seçilen kaydı silin.
Kaydın adını, yanındaki düzenleme düğmesini tıklayarak da düzenleyebilirsiniz.
Kullanıcı işlemleri akışlarını paylaşma
Kaydedici'de kullanıcı akışlarını dışa aktarabilir ve içe aktarabilirsiniz. Bu, hatayı yeniden oluşturan adımların tam kaydını paylaşabileceğiniz için hata raporlamada faydalıdır. Ayrıca, dışa aktarıp harici kitaplıklarla yeniden oynatabilirsiniz.
Kullanıcı akışını dışa aktarma
Bir kullanıcı akışını dışa aktarmak için:
- Dışa aktarmak istediğiniz kullanıcı akışını açın.
- Kaydedici panelinin üst kısmındaki Dışa aktar'ı tıklayın.
- Açılır listeden aşağıdaki biçimlerden birini seçin:
- JSON dosyası. Kaydı JSON dosyası olarak indirin.
- @puppeteer/replay. Kaydı Puppeteer Replay komut dosyası olarak indirin.
- Puppeteer. Kaydı Puppeteer komut dosyası olarak indirin.
- Puppeteer (Lighthouse analizi dahil). Kaydı, yerleştirilmiş bir Lighthouse analizine sahip bir Puppeteer komut dosyası olarak indirin.
- Kaydedici'nin Uzantıları dışa aktarma bölümünde sunulan bir veya daha fazla seçenek.
- Dosyayı kaydedin.
Her varsayılan dışa aktarma seçeneğiyle aşağıdakileri yapabilirsiniz:
- JSON. Kullanıcı tarafından okunabilen JSON nesnesini düzenleyin ve JSON dosyasını Kaydedici'ye içe aktarın.
- @puppeteer/replay. Komut dosyasını Puppeteer Replay kitaplığıyla tekrar oynatın. @puppeteer/replay komut dosyası olarak dışa aktarıldığında adımlar JSON nesnesi olarak kalır. Bu seçenek, CI/CD ardışık düzeninizle entegrasyon yapmak ancak yine de adımları JSON olarak düzenleme, daha sonra dönüştürme ve Kaydedici'ye geri içe aktarma esnekliğine sahip olmak istiyorsanız mükemmeldir.
- Puppeteer komut dosyası. Senaryoyu Puppeteer ile tekrar oynatın. Adımlar JavaScript'e dönüştürüldüğünden, adımları döngüye almak gibi daha ayrıntılı özelleştirmeler yapabilirsiniz. Bu komut dosyasını Kaydedici'ye geri içe aktaramazsınız.
Puppeteer (Lighthouse analizi dahil). Bu dışa aktarım seçeneği öncekiyle aynıdır ancak Lighthouse analizi oluşturan kod içerir.
Komut dosyasını çalıştırın ve sonucu bir
flow.report.html
dosyasında kontrol edin:# npm i puppeteer lighthouse node your_export.js
Bir uzantı yükleyerek özel bir biçimde dışa aktarın
Kaydedici uzantıları başlıklı makaleyi inceleyin.
Kullanıcı akışını içe aktarma
Kullanıcı akışını içe aktarmak için:
- Kaydedici panelinin üst kısmındaki İçe aktar düğmesini tıklayın.
- Kaydedilen kullanıcı akışını içeren JSON dosyasını seçin.
- İçe aktarılan kullanıcı akışını çalıştırmak için Tekrar Oynat düğmesini tıklayın.
Harici kitaplıklarla tekrar oynatma
Puppeteer Replay, Chrome Geliştirici Araçları ekibi tarafından yönetilen açık kaynak bir kitaplıktır. Puppeteer'ın üzerine inşa edilmiştir. Komut satırı aracı olan bu programla JSON dosyalarını yeniden oynatabilirsiniz.
Bunun dışında, aşağıdaki üçüncü taraf kitaplıklarını kullanarak JSON dosyalarını dönüştürebilir ve yeniden oynatabilirsiniz.
JSON kullanıcı akışlarını özel komut dosyalarına dönüştürün:
- Chrome Kaydedici'yi tıklayın. Kullanıcı akışı JSON dosyalarını Cypress test komut dosyalarına dönüştürmek için kullanabilirsiniz. Bu özelliğin işleyiş şeklini bu demoda görebilirsiniz.
- Nightwatch Chrome Recorder. Bu aracı, kullanıcı akışı JSON dosyalarını Nightwatch test komut dosyalarına dönüştürmek için kullanabilirsiniz.
- CodeceptJS Chrome Kaydedici. Kullanıcı akışı JSON dosyalarını CodeceptJS test komut dosyalarına dönüştürmek için bu dosyayı kullanabilirsiniz.
JSON kullanıcı akışlarını tekrar oynatma:
- Testcafe ile tekrar oynatma. Kullanıcı akışı JSON dosyalarını yeniden oynatmak ve bu kayıtlar için test raporları oluşturmak üzere TestCafe'i kullanabilirsiniz.
- Sauce Labs ile tekrar oynama saucectl kullanarak JSON dosyalarını Sauce Labs'de yeniden oynatabilirsiniz.
Kullanıcı işlemleri akışlarında hata ayıklama
Her kodda olduğu gibi, bazen kaydedilen kullanıcı akışlarında hata ayıklama yapmanız gerekir.
Kaydedici paneli, hata ayıklamanıza yardımcı olmak için tekrarları yavaşlatmanıza, ayrılma noktaları ayarlamanıza, yürütmede adım atmanıza ve adımları paralel olarak çeşitli biçimlerde kodu incelemenize olanak tanır.
Tekrarı yavaşlatma
Kaydedici, varsayılan olarak kullanıcı akışını olabildiğince hızlı bir şekilde yeniden oynatır. Kayıtta neler olduğunu anlamak için yeniden oynatma hızını yavaşlatabilirsiniz:
- Tekrar oynat açılır menüsünü açın.
- Aşağıdaki oynatma hızı seçeneklerinden birini belirleyin:
- Normal (Varsayılan)
- Yavaş
- Çok yavaş
- Son derece yavaş
Kodu inceleyin
Kullanıcı işlemleri akışının kodunu çeşitli biçimlerde incelemek için:
- Kaydedici panelinde bir kaydı açın.
- Adımlar listesinin sağ üst köşesindeki Kodu göster'i tıklayın.
- Kaydedici, adımların ve kodlarının yan yana görünümünü gösterir.
- Fareyle bir adımın üzerine geldiğinizde Kaydedici, ilgili kodu uzantılar tarafından sağlananlar da dahil olmak üzere herhangi bir biçimde vurgular.
Kullanıcı akışlarını dışa aktarmak için kullandığınız biçimi seçmek üzere biçim açılır listesini genişletin.
Bu, üç varsayılan biçimden (JSON, @puppeteer/replay, Puppeteer komut dosyası veya bir uzantı tarafından sağlanan biçim) biri olabilir.
Adım parametrelerini ve değerlerini düzenleyerek kaydınızdaki hataları gidermeye devam edin. Kod görünümü düzenlenemez ancak soldaki adımlarda değişiklik yaptığınızda buna göre güncellenir.
Kesme noktaları ayarlama ve adım adım yürütme
Bir kesme noktası ayarlamak ve adım adım yürütmek için:
- İmleci, kayıttaki herhangi bir adımın yanındaki dairesinin üzerine getirin. Daire, ayrılma noktası simgesine dönüşür.
- durak noktası simgesini tıklayın ve kaydı yeniden oynatın. Yürütmeler, ayrılma noktasında duraklatılır. .
- Yürütme adımlarını tek tek görmek için Kaydedici panelinin üst kısmındaki işlem çubuğunda Bir adımı yürüt düğmesini tıklayın.
- Tekrar oynatmayı durdurmak için Tekrar oynatmayı iptal et'i tıklayın.
Adımları düzenleme
Kayıttaki herhangi bir adımı, hem kayıt sırasında hem de sonrasında yanındaki düğmesini tıklayarak düzenleyebilirsiniz.
Eksik adımları ekleyebilir ve yanlışlıkla kaydedilen adımları kaldırabilirsiniz.
Adım ekle
Bazen adımları manuel olarak eklemeniz gerekebilir. Örneğin, Kaydedici hover
etkinliklerini otomatik olarak yakalamaz, çünkü bu durum kaydı kirlemesine neden olur ve bu tür etkinliklerin hepsi faydalı değildir. Ancak açılır menüler gibi kullanıcı arayüzü öğeleri yalnızca hover
'te görünebilir. Bu tür öğelere bağlı kullanıcı akışlarına manuel olarak hover
adımları ekleyebilirsiniz.
Manuel olarak adım eklemek için:
- Bu demo sayfasını açın ve yeni bir kayıt başlatın.
- Fareyle görüntü alanındaki öğenin üzerine gelin. Bir işlem menüsü açılır.
- Menüden bir işlem seçin ve kaydı sonlandırın. Kaydedici yalnızca tıklama etkinliğini yakalar.
- Tekrar oynat'ı tıklayarak kaydı tekrar oynatmayı deneyin. Kaydedici menüdeki öğeye erişemediğinden, zaman aşımından sonra tekrar oynatma başarısız olur.
- Tıkla adımını tıklayıp üç nokta düğmesini tıklayın ve Bundan önce adım ekle'yi seçin.
- Yeni adımı genişletin. Varsayılan olarak
waitForElement
türüne sahiptir.type
öğesinin yanındaki değeri tıklayıphover
seçeneğini belirleyin. - Daha sonra, yeni adım için uygun bir seçici ayarlayın. Seç'i, ardından
Hover over me!
öğesinde pop-up menünün dışındaki bir alanı tıklayın. Seçici#clickable
olarak ayarlandı. - Kaydı tekrar oynatmayı deneyin. Eklenen fareyle üzerine gelme adımının ardından Kaydedici, akışı başarıyla yeniden oynatır.
Onaylama ekleme
Kayıt sırasında, örneğin HTML özellikleri ve JavaScript özellikleri hakkında iddiada bulunabilirsiniz. Onaylama eklemek için:
- Örneğin, bu demo sayfasında kayıt başlatın.
Onay ekle'yi tıklayın.
Kaydedici, yapılandırılabilir bir
waitForElement
adımı oluşturur.Bu adım için seçicileri belirtin.
Adımı yapılandırın ancak
waitForElement
türünü değiştirmeyin. Örneğin, şunları belirtebilirsiniz:- HTML özelliği. Özellik ekle'yi tıklayın ve özelliğin adını ve bu sayfadaki öğelerin kullandığı değeri yazın. Örneğin,
data-test: <value>
. - JavaScript özelliği. Mülk ekle'yi tıklayın ve mülkün adını ve değerini JSON biçiminde yazın. Örneğin,
{".innerText":"<text>"}
. - Diğer adım özellikleri. Örneğin,
visible: true
.
- HTML özelliği. Özellik ekle'yi tıklayın ve özelliğin adını ve bu sayfadaki öğelerin kullandığı değeri yazın. Örneğin,
Kullanıcı akışının geri kalanını kaydedip kaydı durdurun.
Tekrar oyna'yı tıklayın. Onaylama başarısız olursa Recorder, zaman aşımı sonrasında bir hata gösterir.
Bu iş akışının işleyişini görmek için aşağıdaki videoyu izleyin.
Adımları kopyalama
Kullanıcı akışının tamamını dışa aktarmak yerine tek bir adımı panoya kopyalayabilirsiniz:
- Kopyalamak istediğiniz adımı sağ tıklayın veya yanındaki üç nokta simgesini tıklayın.
- Açılır menüde Farklı kopyala ... seçeneklerinden birini belirleyin.
Adımları çeşitli biçimlerde kopyalayabilirsiniz: JSON, Puppeteer, @puppeteer/replay ve uzantılar tarafından sağlananlar.
Adımları kaldırma
Yanlışlıkla kaydedilen bir adımı kaldırmak için adımı sağ tıklayın veya yanındaki üç nokta simgesini tıklayıp Adımı kaldır'ı seçin.
Ayrıca Kaydedici, her kaydın başına otomatik olarak iki ayrı adım ekler:
- Görüntü alanını ayarlayın. Görüntü alanının boyutlarını, ölçeklendirmesini ve diğer özelliklerini kontrol etmenize olanak tanır.
- Gezinme URL'yi ayarlar ve her tekrar oynatmada sayfayı otomatik olarak yeniler.
Sayfayı yeniden yüklemeden sayfa içi otomasyon gerçekleştirmek için yukarıda açıklandığı şekilde gezinme adımını kaldırın.
Adımları yapılandırın
Bir adımı yapılandırmak için:
Türünü belirtin:
click
,doubleClick
,hover
, (giriş)change
,keyUp
,keyDown
,scroll
,close
,navigate
(bir sayfaya),waitForElement
,waitForExpression
veyasetViewport
.Diğer özellikler
type
değerine bağlıdır.Zorunlu özellikleri
type
'ün altına belirtin.Türe özel isteğe bağlı özellikler eklemek ve bunları belirtmek için ilgili düğmeleri tıklayın.
Kullanılabilir özelliklerin listesi için Adım özellikleri'ne bakın.
İsteğe bağlı bir özelliği kaldırmak için yanındaki Kaldır düğmesini tıklayın.
Bir dizi mülküne öğe eklemek veya bir dizi mülkünden öğe kaldırmak için öğenin yanındaki + veya - düğmelerini tıklayın.
Adım özellikleri
Her adım aşağıdaki isteğe bağlı özelliklere sahip olabilir:
target
: Chrome Geliştirici Araçları Protokolü (CDP) hedefi için bir URL. Varsayılanmain
anahtar kelimesi geçerli sayfayı ifade eder.assertedEvents
(şu anda yalnızca tek birnavigation
etkinliği olabilir)
Adım türlerinin çoğunda kullanılabilen diğer ortak özellikler şunlardır:
frame
: İç içe yerleştirilebilecek bir iframe'i tanımlayan sıfır tabanlı dizinler dizisi. Örneğin, ana hedefin ikinci (1) iframe'indeki ilk (0) iframe'i[1, 0]
olarak tanımlayabilirsiniz.timeout
: Bir adım yürütülmeden önce beklenecek milisaniye sayısı. Daha fazla bilgi edinmek üzere Adımlar için zaman aşımlarını ayarlama başlıklı makaleyi inceleyin.selectors
: Seçiciler dizisi. Daha fazla bilgi için Seçicileri anlama başlıklı makaleyi inceleyin.
Türe özgü özellikler şunlardır:
Tür | Özellik | Zorunlu | Açıklama |
click doubleClick |
offsetX offsetY |
Öğe içerik kutusunun sol üst tarafına göre (piksel cinsinden) | |
click doubleClick |
button |
İşaretçi düğmesi: birincil | yardımcı | ikinci | geri | ileri | |
change |
value |
Nihai değer | |
keyDown keyUp |
key |
Anahtar adı | |
scroll |
x y |
Piksel cinsinden mutlak kaydırma x ve y konumları, varsayılan değer 0 | |
navigate |
url |
Hedef URL | |
waitForElement |
operator |
>= | == (varsayılan) | <= | |
waitForElement |
count |
Bir seçicinin tanımladığı öğe sayısı | |
waitForElement |
attributes |
HTML özelliği ve değeri | |
waitForElement |
properties |
JavaScript mülkü ve JSON'daki değeri | |
waitForElement |
visible |
Boole. Öğe DOM'deyse ve görünürse doğru değerini döndürür (display: none veya visibility: hidden içermez) |
|
waitForElement waitForExpression |
asserted events |
Şu anda yalnızca type: navigation ancak başlık ve URL belirtebilirsiniz |
|
waitForElement waitForExpression |
timeout |
Milisaniye cinsinden maksimum bekleme süresi | |
waitForExpression |
expression |
Doğru olarak çözülen JavaScript ifadesi | |
setViewport |
width height |
Görüntü alanının piksel cinsinden genişliği ve yüksekliği | |
setViewport |
deviceScaleFactor |
Cihaz Piksel Oranı'na (DPR) benzer, varsayılan 1 | |
setViewport |
isMobile hasTouch isLandscape |
Aşağıdakilerin yapılıp yapılmadığını belirten Boole işaretleri: |
Tekrar oynatmanın duraklatılmasını sağlayan iki özellik vardır:
waitForElement
özelliği, adımın, bir seçici tarafından tanımlanan birkaç öğenin varlığını (veya yokluğunu) beklemesini sağlar. Örneğin, aşağıdaki adımda sayfadaki.my-class
seçicisiyle eşleşen öğe sayısının üçten az olması beklenir."type": "waitForElement", "selectors": [".my-class"], "operator": "<=", "count": 2,
waitForExpression
özelliği, adımın bir JavaScript ifadesinin doğru olarak çözülmesini beklemesini sağlar. Örneğin, aşağıdaki adım iki saniyeliğine duraklar ve daha sonra doğru değerine dönüşerek tekrar oynatmanın devam etmesini sağlar."type": "waitForExpression", "expression": "new Promise(resolve => setTimeout(() => resolve(true), 2000))",
Adımlar için zaman aşımlarını ayarlama
Sayfanızda yavaş ağ istekleri veya uzun animasyonlar varsa yeniden oynatma, 5000
milisaniyelik varsayılan zaman aşımını aşan adımlarda başarısız olabilir.
Bu sorunu önlemek amacıyla her adım için varsayılan zaman aşımını tek seferde ayarlayabilir veya belirli adımlar için ayrı zaman aşımları ayarlayabilirsiniz. Belirli adımlardaki zaman aşımları varsayılan değerin üzerine yazılır.
Her adımın varsayılan zaman aşımını tek seferde ayarlamak için:
Zaman aşımı kutusunu düzenlenebilir hale getirmek için Tekrar oynatma ayarları'nı tıklayın.
Timeout (Zaman aşımı) kutusuna milisaniye cinsinden zaman aşımı değerini girin.
Ayarlanan varsayılan zaman aşımının nasıl çalıştığını görmek için Tekrar oynat'ı tıklayın.
Belirli bir adımdaki varsayılan zaman aşımının üzerine yazmak için:
Adımı genişletin ve Zaman aşımı ekle'yi tıklayın.
timeout: <value>
simgesini tıklayın ve değeri milisaniye cinsinden ayarlayın.Zaman aşımının işlendiği adımı görmek için Tekrar oynat seçeneğini tıklayın.
Bir adımdaki zaman aşımının üzerine yazma işlemini kaldırmak için yanındaki Sil düğmesini tıklayın.
Seçicileri anlama
Yeni bir kayıt başlattığınızda aşağıdakileri yapılandırabilirsiniz:
- Seçici özelliği metin kutusuna bir özel test özelliği girin. Kaydedici, yaygın test özelliklerinin listesi yerine seçicileri algılamak için bu özelliği kullanır.
Kaydedilecek seçici türleri onay kutuları grubunda, otomatik olarak algılanacak seçici türlerini seçin:
- CSS'yi seçin. Sözdizimsel seçiciler.
- ARIA. Anlamsal seçiciler
- Metin. Varsa en kısa benzersiz metne sahip seçiciler.
- XPath. XML Yol Dili kullanan seçiciler.
- Pierce. CSS'lere benzeyen ancak gölge DOM'sini bozabilen seçiciler.
Sık kullanılan test seçicileri
Basit web sayfalarında, Kaydedici'nin seçicileri algılaması için id
özellikleri ve CSS class
özellikleri yeterlidir. Ancak bu durum her zaman geçerli olmayabilir çünkü:
- Web sayfalarınız değişen dinamik sınıflar veya kimlikler kullanıyor olabilir.
- Kod veya çerçeve değişiklikleri nedeniyle seçicileriniz bozulabilir.
Örneğin, CSS class
değerleri modern JavaScript çerçeveleriyle (ör. React, Angular, Vue) ve CSS çerçeveleriyle geliştirilen uygulamalar için otomatik olarak oluşturulabilir.
Bu durumlarda, daha esnek testler oluşturmak için data-*
özelliklerini kullanabilirsiniz. Geliştiricilerin otomasyon için kullandığı bazı yaygın data-*
seçiciler zaten vardır. Kaydedici bunları da destekler.
Web sitenizde aşağıdaki yaygın test seçicileri tanımlanmışsa Kaydedici bunları otomatik olarak algılayıp önce kullanır:
data-testid
data-test
data-qa
data-cy
data-test-id
data-qa-id
data-testing
Örneğin, "Cappuccino"yu inceleyin ve öğesini bu demo sayfasında bulabilir ve test özelliklerini inceleyebilirsiniz:
"Cappuccino"ya bir tıklama kaydedin, kayıtta ilgili adımı genişletin ve algılanan seçicileri kontrol edin:
Kaydın seçicisini özelleştirme
Yaygın test seçicileri sizin için uygun değilse bir kaydın seçicisini özelleştirebilirsiniz.
Örneğin, bu demo sayfasında seçici olarak data-automate
özelliği kullanılmaktadır. Yeni bir kayıt başlatın ve seçici özelliği olarak data-automate
değerini girin.
Bir e-posta adresi girin ve seçici değeri ([data-automate=email-address]
) gözlemleyin.
Seçici önceliği
Kaydedici, özel CSS seçici özelliğini belirtip belirtmediğinize bağlı olarak seçicileri aşağıdaki sırayla arar:
- Belirtildiyse:
- Özel CSS özelliğinizi içeren CSS seçici.
- XPath seçicileri.
- Varsa ARIA seçici.
- Varsa en kısa benzersiz metne sahip seçici.
- Belirtilmezse:
- Varsa ARIA seçicisi.
- Aşağıdaki önceliğe sahip CSS seçicileri:
- Test için en yaygın olarak kullanılan özellikler:
data-testid
data-test
data-qa
data-cy
data-test-id
data-qa-id
data-testing
- Kimlik özellikleri (ör.
<div id="some_ID">
). - Normal CSS seçicileri.
- Test için en yaygın olarak kullanılan özellikler:
- XPath seçicileri.
- Seçicileri delme.
- Bulunursa en kısa benzersiz metne sahip bir seçici.
Birden fazla normal CSS, XPath ve Pierce seçici olabilir. Kaydedici şunları kaydeder:
- Her kök düzeyinde, yani iç içe yerleştirilmiş gölge ana makineler varsa normal CSS ve XPath seçicileri.
- Tüm gölge kökleri içindeki tüm öğeler arasında benzersiz olan Pierce seçicileri.