2016-03-23 19 views
3

Angular'de yazılmış bir web sitem var ve İletici kullanarak uçtan uca test yapmaya çalışıyorum. Web sitesinde "dosya iletişim kutusunu seç" i açan bir "ekle düğmesi" vardır. İleticiden bir dosya ekleyebilmek istiyorum, ancak dosyayı yüklemiyor veya iletişim kutusunu kapatmıyor.İletki - dosya/exe üzerinden exe dosyasını yükle

İletişim kutusunu (autoIt) aracılığıyla denetleyen bir .exe dosyası oluşturmaya çalıştım ve iyi çalışıyor (iletişim kutusu açıldığında .exe'u çalıştırıyorum ve her şey yolunda çalışıyor). Ancak, iletişim kutusunun görüntülendikten sonra ileticinin bir .exe başlatmasını nasıl anlayacağımı anlamıyorum.

var path = require('path'); 
it('should upload a file', function() { 
    var fileToUpload = '...\folder\xxx.txt', 
    absolutePath = path.resolve(__dirname, fileToUpload); 
    $('#uploadButton').click(); 
    $('input[type="file"]').sendKeys(absolutePath); 
}); 

var exec = require('child_process').execFile; 
var fun = function() { 
    console.log("fun() start"); 
    exec('c:\\Upload_Nonce.exe', function(err, data) { 
     console.log(err) 
     console.log(data.toString());      
    }); 
} 
fun(); 

cevap

1

o webdriver kullandığı beri Açı ölçer ile pencereler iletişim kutularını kontrol edemez.

Yukarıdaki kod, windows iletişim kutusuna dosya yolunu girmeyecek, ancak mutlak dosya yolunu doğrudan sayfadaki dosya yükleme öğesine gönderecektir.

$('#uploadButton').click();'u kaldırırsanız, çalışmanız gerekir; ancak, üzerinde çalıştığınız web sitesi bu tür bir enjeksiyona izin vermiyorsa, el ile öğeyi göstermek için bir komut dosyası yazmanız gerekebilir. Daha fazla bilgi için bkz. How to upload file in angularjs e2e protractor testing.

+0

Merhaba ben zaten "dosya penceresini seç" üzerinde odaklanıp istediğim ve pencereyi kapattığım bir dosya seçip (ve harika çalışıyor) aoutoit ile bir exe dosyası yaptım. Sadece web sayfasına (iletici aracılığıyla) düğmeye tıklayıp exe dosyasını çalıştırmaya nasıl anlatabileceğimi anlamanız gerekir. Yazmaya ihtiyacım var mı, ileticiden asynchronic run exe komutunu yazmam gerek - gerçekten yardıma ihtiyacım var! !! –