2

Birden fazla tarayıcı türünde (Chrome, FireFox, Internet Explorer ve Opera) test yürütecek uygulama üzerinde çalışıyorum. Ben gizli/özel modlarda onları başlattı nasıl bir yol (How to open incognito/private window with Selenium WD for different browser types?) ve set pencere boyutunu (Browser window control #174) bulunan:Chrome ve Opera'nın tarayıcı pencere boyutu, Selenium WebDriver tarafından gizli/gizli modda başlatıldı nasıl ayarlanır?

Window window = driver.manage().window(); 
window.setPosition(new Point(0, 0)); 
window.setSize(new Dimension(width, height)); 

Ama bu kod her durumda çalışmaz:

+-------------------+----------+-------------------+ 
|  Browser  | Standard | Incognito/Private | 
|-------------------|----------|-------------------| 
|  Chrome  | works | does not work | 
|-------------------|----------|-------------------| 
|  FireFox  | works |  works  | 
|-------------------|----------|-------------------| 
| Internet Explorer | works |  works  | 
|-------------------|----------|-------------------| 
|  Opera  | works | does not work | 
+-------------------+----------+-------------------+ 

Nasıl bu problemi çöz? Ben ChromeOptions ve OperaOptions kullanarak sürücüleri için argümanlar geçebilir biliyorum. Ancak test yürütmeleri sırasında boyutu değiştirmek istiyorum. Javascript değerlendirmesi yapmam gerekirse harika olur.

cevap

3

Chrome'da otomasyon testleri ve Opera tarayıcıları ile bazı sorunlar bulunmaktadır.

Sorunlar:

-3

Merhaba, boyut sınıfını kullanarak tarayıcının boyutunu ayarlayabiliriz. Boyut sınıfı, yapabileceğimiz bir yöntem sunuyor. boyutunu ayarlamak için Örnek geçerli:

Dimension d = new Dimension(420,600); 
    //Resize the current window to the given dimension 
    driver.manage().window().setSize(d); 
+0

Lütfen tekrar soru okuyun. Bu kodu kullandım ama id çalışmıyor. – agabrys

2

Merhaba, Google krom (Incog modunda) i yeniden boyutlandırma possible.re boyutlandırma google chrome normal durumda mümkün değil ama üzerinde Incog moduyla düşünüyorum daha fazla araştırma yapmak .o i yakından yüzden olası değildir bulacaksınız satır checkForExtensionError adresinde görebileceğiniz

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: No current window 
JavaScript stack: 
Error: No current window 
    at checkForExtensionError (chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/background.js:14:17) 
    at Object.callback (chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/background.js:67:5) 
    at safeCallbackApply (extensions::sendRequest:21:15) 
    at handleResponse (extensions::sendRequest:72:7) 
    (Session info: chrome=49.0.2623.110) 

(on Incog modunda) tutulma gösterilen hatayı gözlemledi.

1.Please açık krom: krom // uzantıları/ve etkinleştirmek geliştirici seçeneği daha sonra

2.under Krom Otomasyon Uzatma yanlışlıkla (yukarıda yayınlanmıştır) gösterilmektedir aynı kimliği göreceksiniz. içeride sen bulacaktır:

  1. ama Gizli modda izin Yüklendi altında manifest.json yerini açmak

4.Please işaretli değil

{ 
    "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDr+Q7QFcTr4Wmn9sSICKWbxnYLhIM0ERbcapZCDm", 
    "name": "Chrome Automation Extension", 
    "version": "1", 
    "manifest_version": 2, 
    "description": "Exposes extension APIs for automating Chrome", 
    "background": { 
    "scripts": ["background.js"] 
    }, 
    "permissions": [ 
    "tabs", "management", "<all_urls>" 
    ] 
} 

açıklama altında içeriklerin altında u açıkça görebileceği

"description": "Exposes extension APIs for automating Chrome", 

Dolayısıyla, Point 3 etkin değilse, webdriver ile kromda herhangi bir şeyi otomatik hale getirmek mümkün değildir.

Ayrıca, otomasyon yoluyla point 3'u nasıl etkinleştireceğinizi bilmiyorum, o zaman pencereyi kesinlikle incog modunda yeniden boyutlandırabilirsiniz. Bu tarayıcı başlattı sonra bu ad pencerenin boyutunu ayarlamak için bir alternatiftir

+0

"Chrome Otomasyon Uzantısı" ile ipucunuz, sorunu çözmeme yardımcı oluyor. Teşekkür ederim. – agabrys

+0

thankyou @ agabrys Size çok yardımcı olduğum için çok teşekkür ederim. Ayrıca, cevabınız da bana nasıl yardımcı olabileceğini bilmemize yardımcı oldu. 3 –

1

yardımcı olur umarım:

// open a new window to the desired size 
((JavascriptExecutor) driver).executeScript(
    "window.open(window.location.href, 'mywindow', 'height=400,width=400');"); 

// close the current window 
driver.close(); 

// set the context to the new window 
driver.switchTo().window("mywindow"); 

// the new window is now resizeable by JavaScript 
((JavascriptExecutor)driver).executeScript("window.resizeTo(800,600);"); 
+0

Teşekkür ederim, ama bunu yapamam. Test sırasında pencereyi değiştirme yeteneğini eklemek istiyorum. – agabrys

+0

Üzgünüz, son satırı unuttum. "Window.resizeTo", "window.open" ile oluşturulan bir pencere için artık kısıtlanmadığından, test sırasında boyutu değiştirebileceksiniz. –

+0

Yeni bir pencere oluşturmaya ve önceki pencereyi kapatmaya ikna olmadım. Rapor edilen sorunları (Chrome ve Opera sürücüleri izleme sistemlerinde) buldum - böylece onları çözen geçici bir kod oluşturdum. Yardımın için teşekkürler :) – agabrys

İlgili konular