2014-07-09 25 views
6

Bir debian sanal kutuSelenyum Hata: hayır ekran

yılında selenyum-sunucu-bağımsız-2.42.2.jar yükledim belirtilen ve

Firefox 29.0 yüklü ve PHPUnit ile aşağıdaki komut dosyasını çalıştırmak için çalışıyor

1) TestLogin::testHasLoginForm 
PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Unable to connect to host 
127.0.0.1 on port 7055 after 45000 ms. Firefox console output: 
Error: no display specified 
Error: no display specified 
: aşağıdaki hatayı alıyorum

<?php 
class TestLogin extends PHPUnit_Extensions_Selenium2TestCase{ 

    public function setUp() 
    { 
      $this->setHost('localhost'); 
      $this->setPort(4444); 
      $this->setBrowser('firefox'); 
      $this->setBrowserUrl('http://debian-vm/phpUnitTutorial'); 
    } 

    public function testHasLoginForm() 
    { 
      $this->url('index.php'); 

      $username = $this->byName('username'); 
      $password = $this->byName('password'); 

      $this->assertEquals('', $username->value()); 
      $this->assertEquals('', $password->value()); 
    } 
} 

: dizinde yalnızca dosya hangisiBu ne anlama geliyor?

Ben kırmızı birkaç konuları ettik ve görünüşe göre ben denedim aşağıdakileri yapmak zorunda:

1) komut kabuğunda

export PATH=:0; 

Sonucu bu yazın: Ben de aynı hata var.

2) vnc4server'ı yükledim ve debian-vm: 1'i bir uygulama olarak alıyorum ve sonra export PATH=debian-vm:1'u realvnc ve viewer ile çalıştırın (ki bu da çalışır).

+0

Sunucunuz çalışıyor mu? Aynı hata burada: http://stackoverflow.com/questions/10011343/selenium-2-unable-to-connect-to-host – Decypher

+0

Firefox 29.0 bu bir: https://ftp.mozilla.org/pub/mozilla. org/firefox/releases/29.0/linux-x86_64/tr-US/ –

+0

sorunu çözdünüz mü? Ben var değil –

cevap

12

DISPLAY değişkenini ayarlamadığınız için bu hatayı alıyorsunuz. İşte, testi başsız bir makinede nasıl yapacağınız bir kılavuz.

apt-get install xvfb 
apt-get install firefox-mozilla-build 

sonra başlayacak Xvfb: DISPLAY set

Xvfb & 

ve selenyum başlatın:

Önce Xvfb ve bir tarayıcı yüklemek zorunda

export DISPLAY=localhost:0.0 
java -jar selenium-server-standalone-2.44.0.jar 

ve sonra olacak testlerini yapabilir.

+3

Bir yardımcı komut dosyasına xvfb ve DISPLAY değişkeninin yönetimini bırakmanızı öneriyorum. Bu cevaba bakın: http://stackoverflow.com/a/14155698/376138 – pixelistik

+0

Bu yaklaşım artık Ubuntu 16.04 ile çalışmıyor gibi görünüyor: Her zaman hatayı aldım 'Mir'a bağlanılamadı: Sunucu soketine bağlanılamadı: Böyle bir dosya yok veya dizin Başlatma sunucusu yapılamıyor: Broadway görüntü türü desteklenmiyor: localhost: 0.0 Hata: ekranı açamıyor: localhost: 0.0 ' – xuhdev

+0

Xvfb'ye gerek yok, xorg-xserver-video-kukla, xorg ile çok iyi çalışıyor :) – hanshenrik

2

Kesinlikle komut dosyası yoldur, ancak tüm olası DISPLAY değerleri arasında yineleme, doğru DISPLAY değerini kullanmak kadar iyi değildir. Ayrıca en azından debian/ubuntu'da xvfb'ye gerek yoktur. Selenyum yerel olarak veya geçerli bir DISPLAY oturum değişkeninin doğru olduğu sürece uzaktan çalıştırılabilir. http://thinkinginsoftware.blogspot.com/2015/02/setting-display-variable-to-avoid-no.html adresindeki mesajımı görün ancak kısaca:

# Check current DISPLAY value 
$ echo $DISPLAY 
:0 
# If xclock fails as below the variable is incorrect 
$ xclock 
No protocol specified 
No protocol specified 
Error: Can't open display: :0 
# Find the correct value for the current user session 
$ xauth list|grep `uname -n` 
uselenium/unix:10 MIT-MAGIC-COOKIE-1 48531d0fefcd0a9bde13c4b2f5790a72 
# Export with correct value 
$ export DISPLAY=:10 
# Now xclock runs 
$ xclock 
+0

" Ayrıca, en azından debian/ubuntu'da xvfb'ye gerek yok ". başsız bir sunucuda durum böyle değil. Dolayısıyla Xvfb'ye sıklıkla ihtiyaç duyulur. –

+0

@Corey Başsız modda * koşmadığını farz ediyorum. Kesinlikle yapabilirsin, ancak bazı durumlarda testlerin gerçek zamanlı olarak izlenemeyeceğini test edebilirsin. Tüm kullanıcı arabirimi masaüstlerinde ve sunucularda çalışmadığı için kullanıcı arayüzünü test etmek için sunucu olarak çalışan masaüstü bilgisayarları kullanıyorum. Fiziksel ekranlı masaüstü bilgisayarları kullanan –

+0

, küçük uygulama ortamları için iyidir, ancak büyük ölçekli veya uygun maliyetli otomasyon için uygun değildir. –

İlgili konular