2014-09-08 34 views
5

Başsız Chrome kullanarak bir Vagrant VM içinde Protractor e2e testlerini çalıştırmaya çalışıyorum. Ben Xvfb kullanarak çalışan başardı ama ben bir form doldurmak için bir test çalıştırdığınızda bir hata alıyorum: bilinmeyen hata: Bir X ekran anahtar kodu dönüşümleri için gerekli olan, tüm testler ince çalıştırmakİletki gönderen çalışanlar çalışmıyor: anahtar kodu dönüştürmeleri için bir x ekran gerekiyor

Xvfb kullanmayı düşünün ama getKeys() öğesini kullandığım anda (örn. element (by.model ('user.email')). sendKeys ('admin');) Xvfb'yi kullanıyorum bile, bu hatayı alıyorum.

Kaçıyormuşum:

  • angularjs Yeoman açısal-fullstack jeneratör
  • Nodejs sürüm 0.10.30 ile oluşturulan örnek uygulaması, NVM'de ile
  • VirtualBox 4.3
  • serseri 1.6.3 yüklü 0,14
  • Sunucu İşletim Sistemi Ubuntu 14.04 32 bit
  • Misafir OS Ubuntu 14.04 32 bit
  • krom 37.0.2062.94
  • chromedriver başlatmak için aşağıdaki kabuk programı kullanmak 2.10.267517

Selenyum ve Xvfb:

#!/bin/sh

webdriver-manager start &

Xvfb :1 -ac -screen 0 1280x1024x8 &

export DISPLAY=:1

Ayrıca ilave "ihracat EKRAN =: 1"/opt/google/chrome/google-chrome. Yine, sendKeys() özelliği olmadan yapılan testler düzgün çalışıyor.

şimdiye kadar ne yaptım:

  • Ben 32 bit Ubuntu koşuyorum yüzden chromedriver 2.10 32 bit indirilen ama bu
  • Ben --verbose ile chromedriver ran yardım etmedi ve kayıtlarını kontrol ettik ama bu sadece ya
  • burada bazı kaynak kodu kontrol yardım etmedi,
  • Ben Xvfb ekran boyutu ayarları ile fiddled aynı hata gösterir: https://github.com/bayandin/chromedriver/blob/master/keycode_text_conversion_x.cc ve hat 196. 0.123.516 üzerinde hata mesajını buldumGfx :: GetXDisplay() (satır 193) komutu bir görüntüleme nesnesi almayınca tetiklenir./Opt/google/chrome/google-chrome'da dışa aktardığım DISPLAY değişkeninin olabileceğinden şüpheleniyorum ancak emin değilim ve nasıl düzelteceğimize dair bir fikrim yok.

Sendfkeys() 'in bir Vagrant VM içinde başsız Chrome ile nasıl çalışacağını öğrenmek istiyorum. Herhangi bir yardım büyük beğeni topluyor.

cevap

3

seleniumAddress: 'http://localhost:4444/wd/hub' ürününüzün selenyum sunucunuzla eşleştiğinden emin olun ve chromeOnly ayarını önleyin; aksi halde başsız selenum sunucusunu kullanmaktan kaçınabilirsiniz.

Ayrıca Xvfb webdriver-manager önce çalıştırmak gerekiyor ve siz xvfb-run sizin için X authority dance yapmak gerek görünmektedir verilen eksik: durumunda

#!/bin/sh 

export DISPLAY=:1 

Xvfb $DISPLAY -ac -screen 0 1280x1024x8 & 
sleep 1 

xvfb-run webdriver-manager start & 

ben bıraktığım bir başsız kurulum ilgilendiğiniz İsteğe bağlı VNC erişimi ve video kaydı ile docker tabanlı çözüm: https://github.com/elgalu/docker-selenium

+0

Hızlı cevabınız için teşekkür ederiz, Leo. Bunu test ettim ama hala çalışmıyor. Mac'imde 64 bitlik ama aynı hatanın oluştuğu işte de çalıştırdım. –

+0

Bir sanal makine işletim sistemi Ubuntu 14.04 64 bit çalıştırıyorsun? Ve 'xvfb-run' kullanarak sendKeys için önceki ile aynı hatayı verir? –

+0

Evde 32 bit Ubuntu 14.04'ü hem ana bilgisayar hem de misafir işletim sistemi olarak, OSX ana bilgisayarında ve 64 bit Ubuntu 14.04 konuklarında çalıştırıyorum. Her ikisi de aynı hatayı veriyor. Yüklemem gereken bir bağımlılık olabilir mi? Her şeyi çalıştırabilmek için bana aynı bilgiyi veren birkaç blog ve SO kontrol ettim. Daha fazla bilgiye ihtiyacınız varsa lütfen bize bildirin ve çabalarınız için tekrar teşekkürler! –

İlgili konular