Рубин / Кимурай / Капибара / Селен / Хром: нажатие работает только тогда, когда окно видно.Это ожидаемое поведение? - PullRequest
0 голосов
/ 12 марта 2019

Этот код прекрасно работает, когда у меня безглавый = ложь и окно браузера на самом деле на экране:

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)

Это нормально?должен ли экран быть на дисплее, чтобы это работало?Если нет, то как это исправить?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...