← man/system_admin
safaridriver — man safaridriver — 80×24
ugur@toprak:~/man/system_admin$man safaridriver
Bölüm 1 Sistem Yönetimi

safaridriver

Safari WebDriver REST API servisi

Synopsis

     safaridriver -p port [-h | --help] [--version] [--enable] [--diagnose]

Description

safaridriver aracı, Selenium WebDriver REST API'sini uygulayan bir HTTP sunucusu başlatmak için kullanılır. Başlatıldığında safaridriver, macOS ile birlikte yüklenen Safari sürümünü kullanarak web içeriğinin otomatik olarak test edilmesine olanak tanır.

safaridriver, belirli bir test amacı doğrultusunda bir otomasyon oturumunun davranışını özelleştirebilen birkaç özelliği (capabilities) destekler. Özellikler, yeni bir oturum talep edilirken bağımsız değişkenler olarak sağlanır. safaridriver tarafından desteklenen özellikler aşağıdaki OPTIONS bölümünde listelenmiştir. Aşağıda aksi belirtilmedikçe, talep edilen özellik anahtarlarının değerleri okunmaz ve varsa true, aksi takdirde false olduğu varsayılır.

Testlerinizde bu özellikleri kullanmak için, kullandığınız WebDriver istemci kütüphanesiyle nasıl ek özellikler talep edeceğinizi öğrenmek üzere lütfen ilgili üçüncü taraf belgelere bakın.

Options

Komut satırı seçenekleri -p, --port ⟨port⟩ HTTP sunucusunun gelen bağlantıları dinlemesi gereken portu belirtir. Port zaten kullanımda veya başka bir şekilde kullanılamaz durumdaysa, safaridriver sıfır olmayan bir dönüş koduyla hemen çıkış yapacaktır.

-h, --help Kullanım mesajını yazdırır ve çıkış yapar.

--version Sürüm bilgilerini yazdırır ve çıkış yapar.

--enable Sonraki WebDriver oturumlarının daha fazla kimlik doğrulaması gerektirmeden çalışması için yapılandırma değişikliklerini uygular. Bu işlem, Safari'nin Develop menüsündeki "Enable Remote Automation" seçeneğinin işaretlenmesini de içerir. Değişikliklerin uygulanabilmesi için kullanıcının şifreyle kimlik doğrulaması yapması gerekir.

Bu seçenek belirtildiğinde, safaridriver REST API servisini başlatmadan hemen çıkış yapar. Değişiklikler başarılı olduysa veya zaten uygulandıysa safaridriver 0 değeriyle çıkış yapar; aksi takdirde safaridriver >0 değeriyle çıkış yapar ve stderr'e bir hata mesajı yazdırır.

--diagnose Bu safaridriver örneği tarafından barındırılan tüm oturumlar için tanılama günlüğünü (diagnostic logging) etkinleştirir. Daha fazla bilgi için DIAGNOSTICS bölümüne bakın.

Oturum Oluşturma Özellikleri (Session Creation Capabilities) browserName safaridriver yalnızca Safari için WebDriver oturumları oluşturabilir. Eğer browserName değeri Safari değerine eşit değilse oturum oluşturma başarısız olur.

browserName değerleri büyük/küçük harfe duyarsız olarak karşılaştırılır.

browserVersion safaridriver yalnızca Safari sürümü browserVersion değeriyle eşleşen ana bilgisayarları kullanarak oturum oluşturacaktır.

Tarayıcı sürüm numaraları ön ek eşlemesiyle karşılaştırılır. Örneğin browserVersion değeri 12 ise, bu değer 12.0.1 veya 12.1 Safari sürümüne sahip ana bilgisayarlara izin verecektir.

platformName platformName değeri mac veya macOS ise, safaridriver yalnızca safaridriver'ın üzerinde çalıştığı macOS ana bilgisayarını kullanarak oturum oluşturacaktır.

platformName değeri iOS ise, safaridriver yalnızca eşleştirilmiş bir iOS cihazında veya simülatöründe oturum oluşturacaktır.

platformName değerleri büyük/küçük harfe duyarsız olarak karşılaştırılır.

safari:platformVersion safaridriver yalnızca işletim sistemi sürümü safari:platformVersion değeriyle eşleşen ana bilgisayarları kullanarak oturum oluşturacaktır.

İşletim sistemi sürüm numaraları ön ek eşlemesiyle karşılaştırılır. Örneğin safari:platformVersion değeri 12 ise, bu değer işletim sistemi sürümü 12.0 veya 12.1 olan ana bilgisayarlara izin verecek, ancak 10.12 sürümüne izin vermeyecektir.

safari:platformBuildVersion safaridriver yalnızca işletim sistemi yapı sürümü safari:platformBuildVersion değeriyle eşleşen ana bilgisayarları kullanarak oturum oluşturacaktır. Bir macOS yapı sürümü örneği 18E193'tür.

macOS üzerinde işletim sistemi yapı sürümü sw_vers(1) aracı çalıştırılarak belirlenebilir.

safari:useSimulator safari:useSimulator değeri true ise, safaridriver yalnızca iOS Simulator ana bilgisayarlarını kullanacaktır.

safari:useSimulator değeri false ise, safaridriver iOS Simulator ana bilgisayarlarını kullanmayacaktır.

NOT: iOS Simulator ana bilgisayarlarında WebDriver testleri çalıştırmak için bir Xcode kurulumu gereklidir.

safari:deviceType safari:deviceType değeri iPhone ise, safaridriver yalnızca bir iPhone cihazı veya iPhone simülatörü kullanarak oturum oluşturacaktır.

safari:deviceType değeri iPad ise, safaridriver yalnızca bir iPad cihazı veya iPad simülatörü kullanarak oturum oluşturacaktır.

safari:deviceType değerleri büyük/küçük harfe duyarsız olarak karşılaştırılır.

safari:deviceName safaridriver yalnızca cihaz adı safari:deviceName değeriyle eşleşen ana bilgisayarları kullanarak oturum oluşturacaktır. Cihaz adları büyük/küçük harfe duyarsız olarak karşılaştırılır.

NOT: Bağlı cihazların cihaz adları iTunes'ta gösterilir. Xcode yüklüyse, bağlı cihazların cihaz adları instruments(1) çıktısı aracılığıyla ve Devices and Simulators penceresinde (Xcode'da "Window > Devices and Simulators" aracılığıyla erişilir) mevcuttur.

safari:deviceUDID safaridriver yalnızca cihaz UDID'si safari:deviceUDID değeriyle eşleşen ana bilgisayarları kullanarak oturum oluşturacaktır. Cihaz UDID'leri büyük/küçük harfe duyarsız olarak karşılaştırılır.

NOT: Xcode yüklüyse, bağlı cihazlar için UDID'ler instruments(1) çıktısı aracılığıyla ve Devices and Simulators penceresinde (Xcode'da "Window > Devices and Simulators" aracılığıyla erişilir) mevcuttur.

Diğer Özellikler acceptInsecureCerts Bu özellik Safari'ye, SSL/TLS sertifikasının güvenilirliğine bakılmaksızın tüm ağ isteklerini tamamlamasını söyler; buna süresi dolmuş sertifikalara, ana bilgisayarla eşleşmeyen sertifikalara ve güvenilir bir kökü olmayan sertifikalara güvenmek de dahildir.

safari:automaticInspection Bu özellik Safari'ye, yeni oluşturulan bir pencereyi döndürmeden önce arka planda Web Inspector'ı ve JavaScript hata ayıklayıcısını (debugger) önceden yüklemesini söyler. JavaScript'te testin yürütülmesini duraklatmak ve Web Inspector'ın Debugger sekmesini açmak için test sayfasında bir debugger; ifadesini çalıştırmanız yeterlidir.

safari:automaticProfiling Bu özellik Safari'ye, yeni oluşturulan bir pencereyi döndürmeden önce arka planda Web Inspector'ı önceden yüklemesini ve bir Zaman Tüneli (Timeline) kaydı başlatmasını söyler. Kaydı görüntülemek için Safari'nin Develop menüsünden Web Inspector'ı açın.

safari:diagnose Bu özellik oturum için tanılamanın etkinleştirilmesini talep eder. Daha fazla bilgi için DIAGNOSTICS bölümüne bakın.

webauthn:virtualAuthenticators Bu özellik Safari'ye, Sanal Kimlik Doğrulayıcı (Virtual Authenticator) WebDriver komutlarının kullanılmasına izin vermesini söyler. https://www.w3.org/TR/webauthn-2/#sctn-automation-webdriver-capability

webkit:alwaysAllowAutoplay Bu özellik Safari'ye, web sitesi başına mevcut tüm ayarları yok sayarak, kullanıcı etkileşimi gerektirmeden tüm medya öğelerinin otomatik olarak oynatılmasına (autoplay) her zaman izin vermesini söyler.

webkit:WebRTC Bu özellik bir testin Safari'nin WebRTC ve Media Capture politikalarını geçici olarak değiştirmesine olanak tanır. webkit:WebRTC özelliğinin değeri, tamamı isteğe bağlı olan aşağıdaki alt anahtarlara sahip bir sözlüktür:

DisableInsecureMediaCapture Normalde Safari, güvenli olmayan bağlantılar üzerinden medya yakalanmasına (media capture) izin vermez. Bu kısıtlama, test amacıyla WebDriver oturumları için varsayılan olarak esnetilmiştir (örneğin, HTTPS için yapılandırılmamış bir test web sunucusu). Bu özellik belirtildiğinde Safari, güvenli olmayan bağlantılar üzerinden medya yakalanmasını önleme şeklindeki normal davranışına geri dönecektir.

DisableICECandidateFiltering Kullanıcının gizliliğini korumak amacıyla Safari, yakalama cihazları kullanımda olmadığında normalde dahili ağ adreslerine karşılık gelen WebRTC ICE adaylarını filtreler. Bu özellik, ICE adayı filtrelemeyi bastırır, böylece hem dahili hem de harici ağ adresleri her zaman ICE adayları olarak gönderilir.

Exit Status

safaridriver aracı başarı durumunda 0, bir hata oluşursa >0 ile çıkış yapar.

Errors

Bir REST API komutu başarısız olduğunda, safaridriver yanıtta ayrıntılı bir hata mesajı içerir. REST API servisinin üzerinde üçüncü taraf bir kütüphane kullanıyorsanız, bu hata mesajlarına nasıl erişeceğinizi öğrenmek için kütüphanenin belgelerine başvurun.

Session Creation

safaridriver; bir macOS makinesindeki Safari, eşleştirilmiş bir iOS cihazı veya bir iOS simülatörü kullanarak WebDriver oturumları oluşturabilir. Session Creation Capabilities alt bölümünde listelenmiş özellikler, safaridriver'ın bir New Session komutunu işlerken hangi ana bilgisayarları kullanmaya çalışacağını etkileyen kriterleri sağlar. Bir ana bilgisayarın kullanılabilir olması için tüm kriterleri karşılaması gerekir. Kriterlerin tamamını karşılayan hiçbir ana bilgisayar yoksa, New Session komutu başarısız olacaktır. Birden fazla ana bilgisayar kriterlerin tamamını karşılıyorsa, safaridriver'ın bunları hangi sırayla kullanacağı belirtilmemiştir; tek istisna, başlatılmış (booted) simülatörlerin başlatılmamış simülatörlerden önce kullanılmasıdır.

Kriterleri karşılayan bir simülatör ana bilgisayarı başlatılmamışsa, safaridriver simülatör örneğini başlatmaya çalışacak ve kullanılabilir duruma gelmesini bekleyecektir. Kriterleri karşılayan bir ana bilgisayarda Safari çalışmıyorsa, safaridriver otomatik olarak Safari'yi başlatacak ve kullanılabilir duruma gelmesini bekleyecektir. Bir ana bilgisayarın Safari örneği aktif olmayan bir WebDriver oturumu ile ilişkilendirilmişse, oturum kullanıcı tarafından manuel olarak kesintiye uğratılmadığı veya Web Inspector tarafından incelenmediği sürece safaridriver eski oturumu yenisiyle değiştirecektir.

Notes

Güvenlik nedenleriyle Safari, WebDriver test oturumu sırasında canlı medya yakalanmasına izin vermez. Bunun yerine, test amacıyla sahte (mock) yakalama cihazları ve içeriği önceden bilinen akışlar sağlanır. Bazı medya özellikleri test için yapılandırılabilir; Diğer Özellikler alt bölümündeki webkit:WebRTC uzantı özelliğine bakın.

Güvenlik nedenleriyle, HTTP sunucusu yalnızca localhost üzerinden gelen bağlantıları kabul eder. HTTP sunucusu birden fazla test istemcisinden gelen bağlantıları kabul edebilir. macOS ve iOS üzerindeki Safari aynı anda yalnızca bir WebDriver oturumuna ev sahipliği yapabilir, bu nedenle aynı anda birden fazla safaridriver örneğinin çalıştırılması önerilmez.

safaridriver genellikle komut satırında manuel olarak veya bir WebDriver istemci kütüphanesi tarafından otomatik olarak çalıştırılır. Selenium projesi, en popüler programlama dillerinin çoğu için istemci kütüphaneleri sağlar. Selenium projesi web sitesinde daha fazla bilgi mevcuttur:

https://www.seleniumhq.org/

See Also

safaridriver'ın hangi REST API uç noktalarını (endpoints) desteklediğinin ve her bir uç noktanın hangi Safari sürümünde kullanılabilir hale geldiğinin bir özeti Apple Developer web sitesinde bulunabilir:

https://developer.apple.com/

Standards

safaridriver, W3C WebDriver spesifikasyonunu uygular:

https://www.w3.org/TR/webdriver/

Diagnostics

safaridriver'a karşı bir hata raporu (bug report) bildirirken, safaridriver tarafından üretilen tanılamaları yakalamanız ve eklemeniz önemle tavsiye edilir. Bu işlem birkaç yolla gerçekleştirilebilir:

Tek bir oturumu tanılamak için, yeni bir oturum talep ederken safari:diagnose özelliğini iletin.

Bir safaridriver örneğindeki tüm oturumları tanılamak için, --diagnose komut satırı seçeneğini kullanın.

Tüm safaridriver örneklerindeki tüm oturumları tanılamak için, defaults(1) kullanarak com.apple.WebDriver alanındaki DiagnosticsEnabled varsayılan değerini YES olarak ayarlayın.

Tanılama dosyaları ~/Library/Logs/com.apple.WebDriver/ dizinine kaydedilir ve safaridriver'ın pid'si ile bir zaman damgası kullanılarak benzersiz bir şekilde adlandırılır. Belirli bir oturum için tanılamayı açmak üzere safari:diagnose özelliği kullanıldığında, tanılama dosyaları dosya adlarında ayrıca oturum tanımlayıcısını da içerir.

Darwin 4/19/17 Darwin