Bunlar arasındaki fark nedir
Webdriver.Close()
Webdriver.Quit()
Webdriver.Dispose()
Hangisi ne zaman kullanılacak?
Bunlar arasındaki fark nedir
Webdriver.Close()
Webdriver.Quit()
Webdriver.Dispose()
Hangisi ne zaman kullanılacak?
Yanıtlar:
Bu insanların Close () kullandıklarını gördüklerinde gördükleri iyi bir soru. Selenium Client & WebDriver C # Bindings için kaynak koduna baktım ve aşağıdakileri buldum.
webDriver.Close()
- Sürücünün odaklandığı tarayıcı penceresini kapatın webDriver.Quit()
- Dispose Çağrıları () webDriver.Dispose()
Tüm tarayıcı pencerelerini kapatır ve oturumu güvenli bir şekilde sonlandırırAşağıdaki kod, sürücü nesnesini atar, oturumu sonlandırır ve bir test sırasında testin başarısız olup olmadığını veya geçip geçmediğini tüm tarayıcıları kapatır.
public IWebDriver Driver;
[SetUp]
public void SetupTest()
{
Driver = WebDriverFactory.GetDriver();
}
[TearDown]
public void TearDown()
{
if (Driver != null)
Driver.Quit();
}
Özetle, programdan çıkmadan önce Quit () veya Dispose () öğesinin çağrıldığından emin olun ve ne yaptığınızdan emin değilseniz Close () yöntemini kullanmayın.
Not
Sanal makinemde neden sabit disk alanı tükeniyor diye ilgili bir sorunu çözmeye çalışırken bu soruyu buldum. İstisna, Quit () veya Dispose () işlevinin her çalıştırmada çağrılmamasına neden oldu ve bu da appData klasörünün sabit sürücüyü doldurmasına neden oldu. Bu yüzden Quit () yöntemini doğru bir şekilde kullanıyorduk ancak koda ulaşılamıyordu. Özet, tüm kod yollarının, istisna güvenli kalıplar kullanarak veya yönetilmeyen nesneleri kullanarak yönetilmeyen nesnelerinizi temizleyeceğinden emin olun
Ayrıca
RemoteDriver'ın çağrılması durumunda Quit () veya Dispose () de Selenium Sunucusundaki oturumu kapatır. Oturum kapatılmazsa, o oturumun günlük dosyaları bellekte kalır.
Quit()
bir yönlendirme etmektirDispose()
Close()
- Şu anda odağı olan tarayıcıyı veya sayfayı kapatmak için kullanılır.
Quit()
- Web sürücüsü örneğini kapatmak veya web sürücüsü örneğini yok etmek için kullanılır (Tüm pencereleri kapatın).
Dispose()
- Bu yöntemin farkında değilim.
Quit
ve Dispose
yöntemleri birbirlerinin eş anlamlıları olmalıdır. Başka bir deyişle, Quit
aramalar Dispose
.
driver.close
ve driver.quit
Selenium WebDriver'da tarayıcı oturumunu kapatmak için iki farklı yöntemdir. Her ikisini de anlamak ve her yöntemi ne zaman kullanacağınızı bilmek test yürütmenizde önemlidir. Bu nedenle, bu yöntemlerin her ikisine de ışık tutmaya çalıştım.
driver.close
- Bu yöntem, odağın ayarlandığı tarayıcı penceresini kapatır. Bu yöntem için tanıdık isim rağmen, WebDriver
yok değil uygulamak AutoCloseable
arabirimi .
driver.quit
- Bu yöntem temel olarak driver.dispose
şimdi tüm tarayıcı pencerelerini kapatan ve WebDriver oturumunu zarif bir şekilde sonlandıran dahili bir yöntemi çağırır .
driver.dispose
- Daha önce de belirtildiği gibi, başka bir cevaba göre sessizce düşürülen dahili bir WebDriver yöntemidir - Doğrulama gerekli. Önceki yöntemlerden çoğu çoğu kullanım durumunda çalışması gerektiğinden, bu yöntemin normal bir test iş akışında gerçekten bir kullanım durumu yoktur.
Açıklama kullanım örneği: driver.quit
Programı sonlandırmak istediğinizde kullanmalısınız . Açık olan tüm tarayıcı pencerelerini kapatır ve WebDriver oturumunu sonlandırır. driver.quit
Programın sonunda kullanmazsanız , WebDriver oturumu düzgün kapanmaz ve dosyalar bellekten silinmez. Bu, bellek sızıntısı hatalarına neden olabilir.
Yukarıdaki açıklama WebDriver'daki driver.close
ve driver.quit
yöntem arasındaki farkı açıklamalıdır . Umarım faydalı bulursunuz.
Aşağıdaki web sitesinde selenyum testi ile ilgili bazı ipuçları bulunmaktadır: Link
quit()
: Açık olan ilgili tüm pencereleri kapatarak bu sürücüden çıkar.
close()
: Geçerli pencereyi kapatın, o anda açık olan son pencere ise tarayıcıdan çıkın.
close (): - Aynı sürücü örneğiyle birden çok tarayıcı penceresi açtığınızı varsayalım, şimdi sürücü örneğinde close () çağrısı sürücü örneğinin işaret ettiği geçerli pencereyi kapatacaktır. Ancak sürücü örneği hala bellekte kalır ve diğer açık tarayıcı pencerelerini işlemek için kullanılabilir.
quit (): - Sürücü örneğinde quit () öğesini çağırırsanız ve açık bir veya daha fazla tarayıcı penceresi varsa, tüm açık tarayıcı pencerelerini kapatır ve sürücü örneği toplanan çöptür, yani bellekten kaldırılır. Şimdi bu sürücü örneğini, üzerinde quit () çağırdıktan sonra başka işlemler yapmak için kullanamazsınız. Bunu yaparsanız bir istisna atar.
dispose (): - Bir WebDriver örneği için bir dispose yöntemi olduğunu düşünmüyorum.
Referans için bu selenyum resmi java doc bağlantısına gidebilirsiniz .
close () , şu anda odakta olan tarayıcı penceresini kapatan bir webdriver komutudur. Bu yöntem için tanıdık isim rağmen, WebDriver
yok değil uygulamak AutoCloseable
arabirimi .
Otomasyon işlemi sırasında, birden fazla tarayıcı penceresi açılmışsa, close () komutu yalnızca o sırada odağı olan geçerli tarayıcı penceresini kapatır. Kalan tarayıcı pencereleri kapatılmaz. Geçerli tarayıcı penceresini kapatmak için aşağıdaki kod kullanılabilir:
quit () , tüm tarayıcı pencerelerini kapatan ve WebDriver oturumunu sonlandıran driver.dispose yöntemini çağıran bir webdriver komutudur. Programın sonunda quit () kullanmazsak, WebDriver oturumu düzgün kapatılmaz ve dosyalar bellekten silinmez. Bu, bellek sızıntısı hatalarına neden olabilir.
Otomasyon işlemi yalnızca tek bir tarayıcı penceresi açarsa close () ve quit () komutları aynı şekilde çalışır. Otomasyon sırasında birden fazla tarayıcı penceresi açıldığında her ikisi de işlevlerinde farklılık gösterir.
Ref Üstü için: buraya tıklayın
Dispose Komutu Dispose () öğesi Quit () öğesini çağırmalıdır ve öyle görünür. Ancak, PhantomJS manuel olarak kapatılana kadar sonraki eylemlerin engellenmesi de aynı soruna sahiptir.
Ref Link
Driver.close () ve driver.quit () arasındaki fark
driver.close - Odağın ayarlandığı tarayıcı penceresini kapatır.
driver.quit - Temel olarak driver.dispose yöntemini çağırır, bu da tüm tarayıcı pencerelerini kapatır ve WebDriver oturumunu zarif bir şekilde sonlandırır.
Selenyum Web Sürücüsü
WebDriver.Close()
Bu yöntem geçerli açık pencereyi kapatmak için kullanılır. Sürücünün odaklandığı geçerli açık pencereyi kapatır.
WebDriver.Quit()
Bu yöntem WebDriver örneğini yok etmek için kullanılır. Bu sürücü ile ilişkili tüm Tarayıcı Pencerelerini kapatır ve oturumu güvenli bir şekilde sonlandırır. WebDriver.Quit () Dispose çağırır.
WebDriver.Dispose()
Bu yöntem tüm Tarayıcı pencerelerini kapatır ve oturumu güvenli bir şekilde sonlandırır