Этот код прекрасно работает, когда у меня безглавый = ложь и окно браузера на самом деле на экране:
require 'kimurai'
require "capybara"
require "capybara/sessionkeeper"
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
class SimpleSpider < Kimurai::Base
@name = "simple_spider"
@engine = :selenium_chrome
@start_urls = ["some_url"]
@config = {
cookies: YAML.load_file('./config/cookies.yml')
}
def parse(response, url:, data: {})
yaml_str = browser.cookies_to_yaml
File.write('./config/cookies.yml', yaml_str)
browser.all(:xpath, '//div[contains(text(), "17")]')[0].click
end
end
SimpleSpider.crawl!
Если я запускаю его в режиме без головы или просто сверну окно, я получаюошибка:
undefined method `click' for nil:NilClass (NoMethodError)
Это нормально?должен ли экран быть на дисплее, чтобы это работало?Если нет, то как это исправить?
Спасибо