2016-04-06 2 views
0

Возможно, я не могу сделать fileUpload, я использую сценарий ниже, но из скриншота очевидно, что файл даже не выбран в форме: ScreenshotЗагрузка файла PhantomJS не работает с выражением XPath

casper.thenOpen('https://encodable.com/uploaddemo/', function() { 

    this.waitForSelector(x('//input[@type="file"]'), function() { 
     casper.page.uploadFile(x('//input[@type="file"]'), '/Users/stratos/Desktop/IMG_1344.png'); 
    }); 
    }); 
    casper.then(function() { 
    this.wait(5000, function() { 
     this.capture('test/integration/screenshots/uploadTest.png'); 
    }); 
    }); 

тест нормально работает без ошибок, так что я не имею никаких указаний на то, что происходит :(

Я использую PhantomJS 2.1.1 и CasperJS 1.1.0-beta5

Если тест прессы кнопка «Загрузить» проведет проверку страницы из-за отсутствия выбранного файла.

+0

Может быть, я не фраза, это правильно, проблема в том, что файл не был выбран в первую очередь , нажатие кнопки «Начать загрузку» приведет к активации проверки страницы из-за отсутствия выбранного файла. Я боюсь, что не могу загрузить скриншот с результатом из-за моей низкой репутации ... –

ответ

1

page.uploadFile() является функцией PhantomJS и не поддерживает использование XPper-выражений CasperJS. Он принимает только CSS селекторы в виде простой строки:

casper.page.uploadFile('input[type="file"]', '/Users/stratos/Desktop/IMG_1344.png'); 
+0

Пятно на! Спасибо! –

1

Это может помочь вам

casper.then(function() { 
    var fileName = "/file path/"; 
    this.evaluate(function (fileName) { 
     __utils__.findOne('input[type="file"]').setAttribute('value', fileName) 
    }, {fileName: fileName}); 
    this.page.uploadFile('input[type="file"]', fileName); 
    console.log('Selecting file'); 
}); 
casper.then(function() { 
    console.log("Clicking on Upload to notebook check box"); 
    this.click(x("Xpath of uploading button")); 
    console.log("Clicking on Submit icon"); 
}); 
Смежные вопросы