2016-10-21 3 views
-1

Мне нужно поставить «75018» в поле поиска в this site и нажать кнопку поиска с CasperJS. i read this вопрос, и следуйте инструкциям, я получаю снимок экрана для отладки, но он не нажимает кнопку.Как заполнить поле поиска с помощью CasperJS

я попробовал этот

var x = require('casper').selectXPath; 

var casper = require('casper').create({ 
     clientScripts: [ 
     'jquery-1.10.1.min.js' 
     ], 
     pageSettings: { 
     loadImages: true,  
     loadPlugins: true, 
     userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36', 
     webSecurityEnabled: false, 
     ignoreSslErrors: false, 
     sslProtocol: "tlsv1" 
    }, 
    verbose: true, 
    logLevel: 'warning' 
// logLevel: 'debug' 
}); 

var utils = require('utils'); 
var fs = require('fs'); 
var system = require('system'); 

casper.options.viewportSize = {width: 1920, height: 1080}; 
var counter = 0; 
var dejaexclu = false;  

function getData(filepath){ 

    var eol = system.os.name == 'windows' ? "\r\n" : "\n"; 
    var data = fs.read(filepath); 
    //utils.dump(data); 
    var arrdata = data.split(eol); 
    //utils.dump(arrdata); 
    return arrdata; 
} 

function count(){ 
    counter = counter +1; 
    return counter; 
} 

casper.start('http://www.chronodrive.com', function() { 
    console.log("page loaded"); 
    this.test.assertExists('form#searchShopForm', 'form is found'); 
    this.fill('form#searchShopForm', { 
     searchField: '75018' 
    }, true); 
}); 
casper.then(function() { 
    console.log("photo"); 

     console.log("photo"); 
     this.click('#blinksubmit'); 
     this.captureSelector("screenshot.png", "html"); 
      console.log("photo"); 
}); 
casper.run(); 

мой снимок экрана, который показывает, что я могу поместить значение в поле, но это не нажмите

enter image description here

+0

Пожалуйста, добавьте разметку поля ввода на ваш вопрос. Вы можете удалить скриншот. –

+0

@ArtjomB. Я не знаю, как это сделать – parik

ответ

1

Попробуйте вместо

this.fillSelectors('form#searchShopForm', { 
     "input[id='searchField']" : "75018" 
    }, true); 

См. http://docs.casperjs.org/en/latest/modules/casper.html#fillselectors

или положить цитаты вокруг вашего поискаПокрытие

например.

'searchField' : '75018' 

см http://docs.casperjs.org/en/latest/modules/casper.html#fill

Ах извините, я вижу, что это авто предложить и не имеет понятия кнопки представить. Поэтому измените true на false, а затем попробуйте использовать sendkeys для отправки ключа ввода, например.

CasperJS: swallows special keys like Enter?

Редактировать

Этот код работает вопрос не с Каспер она с окном поиска и анимации. Это то, что нужно время, чтобы показать. gold правило большого пальца с casper - каждый раз, когда вы запрашиваете новый ресурс/page/script/html/json, тогда это хорошая идея использовать casper.waitForXXX, это позволяет на время, необходимое для ожидания сервера или для анимации и т.д.

var casper = require('casper').create({ 
    viewportSize : {width: 1920, height: 1080} 
}); 


casper.start('http://www.chronodrive.com/prehome'); 

casper.waitForText("Pour toutes", function() { 

    this.sendKeys('#searchField', '06150 bordeaux', {keepFocus: true}); 
    this.sendKeys('#searchField', casper.page.event.key.Enter , {keepFocus: true}); 

}); 

casper.waitForText("Cannes", function() { 
    casper.capture('tmp.jpg'); 
}); 

casper.run(); 

enter image description here

+0

, как вы видите на моем скриншоте, я могу заполнить поле 75018, я просто не могу нажать на «chercher» buttom, – parik

+0

Спасибо за ваше издание, я устал, но у меня есть тот же результат. – parik

Смежные вопросы