无法通过fill_in找到字段“q”(Capybara :: ElementNotFound)

时间:2017-01-16 18:08:18

标签: ruby-on-rails web-scraping capybara matcher capybara-webkit

试图从Indeed.com

获取“什么”形式(又名职称)

尝试运行程序时出错:

$ jq '.status."0key"' <<<'{ "status": { "0key": 9 } }' # Note the "..." around 0key
9

从Indeed.com通过firefox检查元素产生:/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)

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>

整个代码可在以下位置找到: peak's

现在问题是无法找到def perform_search # For indeed fill_in 'q', :with => @skillset fill_in 'l', :with => @region find('#fj').click sleep(1) end 我是否可以通过其他方式链接到Indeed.com上的表单,以便我可以启动网页编写?我或许正在谈论xpath或css。

1 个答案:

答案 0 :(得分:2)

您的代码只允许使用网址http://www.indeed.com,但该网址会重定向到https://www.indeed.com,也会点击http://indeed.com。因此,您的页面加载被阻止。更改为config.allow_url("indeed.com"),它应该能够找到输入。