2016-10-25 3 views
0

Я сделал скребок, используя внутренний узел PhantomJS (модуль узла).Как изменить значение выбора с помощью PhantomJS

Я пытаюсь получить данные из таблицы на странице (url). Когда страница загружается, отображаются только 25 записей таблицы. Внизу есть «выбрать», чтобы вы могли перейти на «Все», чтобы увидеть все записи. Как изменить значение параметра «Все» перед возвратом HTML?

var phantom = require('phantom'); 

phantom.create().then(function(ph){ 
    ph.createPage().then(function(page){ 
     page.open(url).then(function(status){ 
      console.log(status); 

      page.property('content').then(function(content){ 
       console.log(content); 

       page.close(); 
       ph.exit(); 
      }); 
     }); 
    }); 
}); 



<select name="qs-rankings_length" aria-controls="qs-rankings" class="jcf-hidden"> 
    <option value="100">100</option> 
    <option value="200">200</option> 
    <option value="-1">All</option> 
</select> 

ответ

0

Вот как я это делаю.

page.evaluate(function() { 
    $('#select_element_selector').val('All').change(); 
}); 

Я предполагаю, что у вас есть jQuery на странице.

Или без JQuery:

page.evaluate(function() { 
    document.getElementById('select').selectedIndex = 0; 
    // or use document.getElementById('select').value = 'All'; 
} 
+0

я могу сделать, если страница, что им получающего доступ есть JQuery? Мне не нужно «импортировать» jQuery для моего скрипта? (Извините, я новичок в этом). И я делаю это до page.property ........... –

+0

Я обновил ответ на работы без jQuery, потому что я не знаю, как импортировать jQuery с phantomjs. –

+0

Также имеет это - ТипError: undefined не является конструктором (оценка 'api.page.len (event.data.pageLength) .draw()') –

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