Не удалось найти поле «q» (Capybara::ElementNotFound) через fill_in

Попытка получить форму «что» (также называемую должностью) с сайта Indeed.com.

Ошибка при попытке запустить программу:

/var/lib/gems/2.3.0/gems/capybara-2.11.0/lib/capybara/node/finders.rb:44:in `block in find': Unable to find field "q" (Capybara::ElementNotFound)

Проверка элемента через firefox с сайта Indeed.com дает: name="q"

<span class="inwrap">
<input class="input_text" maxlength="512" size="31" aria-labelledby="what_label_top hidden_colon what_label_bot" name="q" autocomplete="off" id="what">
</span>
<div style="width:250px"><!-- --></div>

Что соответствует коду в скребке:

def perform_search
# For indeed
fill_in 'q', :with => @skillset
fill_in 'l', :with => @region
find('#fj').click
sleep(1)
end

Весь код можно найти по адресу: https://github.com/jasnow/job-hunter/blob/master/scraper.rb

Теперь проблема в том, что я не могу найти name="q". Есть ли какие-либо другие способы, с помощью которых я мог бы сослаться на эту форму на Indeed.com, чтобы я мог инициировать просмотр веб-страниц? Я говорю, возможно, xpath или css.


person user3787179    schedule 16.01.2017    source источник


Ответы (1)


Ваш код разрешает только URL-адрес http://www.indeed.com , но этот URL-адрес перенаправляет на https://www.indeed.com, а также попадает на http://indeed.com. Поэтому загрузка вашей страницы блокируется. Измените на config.allow_url("indeed.com"), и он сможет найти ввод.

person Thomas Walpole    schedule 16.01.2017