分度器を使ってfilepickerにファイルをアップロードするには?ここで
は、HTMLコードである:ここで
<input type="file" class="fileUploadInput" name="fileUpload" id="fileUploadInput" accept="application/msword,application/pdf,text/plain,application/rtf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.oasis.opendocument.formula" multiple="multiple" title="Choose File">
は私のコードです:
browser.wait(function(){
return element(by.id('.filepicker_dialog_container')).isPresent();
}).then(function() {
browser.driver.switchTo().frame('.filepicker_dialog');
}).then(function(){
var fileToUpload = '/home/raghavendra/Desktop/f0657c76d96b9ddab5562b8391297dbbb01488fec4e79a4c13195aea.doc';
var absolutePath = protractor.basePath.resolve(__dirname, fileToUpload);
$("#fileUploadInput").sendKeys(absolutePath);
});
私は今、すべてのエラーを取得していないのですが、それはファイルをアップロードしていない、このようにやっています。ポップアップウィンドウが閉じていません。このコードが機能している
var path = require('path');
var ptor = browser,
driver = browser.driver;
describe('Hirealchemy roles', function() {
it('while clicking filepicker icon', function() {
$('.icon-people').click();
browser.sleep(5000);
browser.driver.findElement(By.xpath('/html/body/div[4]/div/ng-view/div/div/div[2]/' +
'section/div/div/div[1]/form/div[2]/input')).sendKeys(group_name);
browser.sleep(5000);
element.all(by.css('.btn.btn-main')).click();
browser.sleep(5000);
browser.wait(function(){
return element(by.id('filepicker_dialog')).isPresent();
})
.then(function(){
ptor.switchTo().frame('filepicker_dialog');
})
.then(function(){
var fileToUpload = '/home/raghavendra/Desktop/50_resumes/f0657c76d96b9ddab5562b8391297dbbb01488fec4e79a4c13195aea.doc';
var absolutePath = path.resolve(__dirname, fileToUpload);
driver.findElement(By.id('fileUploadInput')).sendKeys(absolutePath);
})
.then(function(){
ptor.switchTo().defaultContent();
})
.then(function(){
browser.wait(function(){
var deferred = protractor.promise.defer();
element(by.id('filepicker_dialog')).isPresent()
.then(function(present){
deferred.fulfill(!present);
});
return deferred.promise;
});
});
});
})
:
は、ここに私の完全なコードです。
NoSuchElementError:ロケータを使用している要素が見つかりません:By.cssSelector( "#fileUploadInput") –
@raghavendrat私が理解していることから、これは通常2つの理由によるものです - ボタンがiframeの内側にあり、要素を検索する前に切り替えてください。要素が存在するのを待つ必要があります。http://stackoverflow.com/a/27867319/771848希望が役立ちます。 – alecxe
私のコードを掲載しました。一見して、どこに間違っているのか教えてください。 –