Когда вы включаете класс lis using, вы должны быть осторожны, потому что, когда вы находите с помощью menu-index-page__item
, он находит все, что включает menu-index-page__item
, поэтому он также находит menu-index-page__item menu-index-page__item--unavailable
.Поэтому попробуйте сформировать xpath в этом месте, он будет работать
$browser.divs(class: 'menu-index-page__menu-category').map do |cat|
cate = cat.h3.text
puts cate
cc = cat.ul(class: 'menu-index-page__items')
cc.lis(xpath: "//li[@class='menu-index-page__item']").each do |lit|
lit.fire_event :click
end
end
. Или вы можете исключить конкретный список таким образом
$browser.divs(class:'menu-index-page__menu-category').map do |cat|
cate = cat.h3.text
puts cate
cc = cat.ul(class:'menu-index-page__items')
cc.lis(xpath: "//li[not(@class=menu-index-page__item menu-index-page__item--unavailable')]").each do |lit|
lit.fire_event :click
end
end
, а также никогда не нажимать через fireevent
, потому что этоклик по javascript, это не клик по селену, вам будет не хватать многих событий, которые будут срабатывать после клика.
Выполните
lit.click