在 CapyBara 中查找和输入文本

Finding and entering text in CapyBara

我目前正试图找到这本特定的教科书并将密钥发送给它。我遇到的问题是我正在尝试使用 find 方法。我在这个文本框上尝试了很多变体,但找不到这本教科书。

HTML 标签:

<div class="selectize-input items not-full ng-valid has-options ng-dirty"><input type="text" autocomplete="off" tabindex="0" style="width: 187.033px; opacity: 1; position: relative; left: 0px;" placeholder="Type a Catname or Kob name"></div>

这是我正在尝试做的事情

find('selectize-input items not-full ng-valid has-options').sendkeys 'Meow'

如果可能的话,不使用 xpath 是否可以轻松做到这一点。还有我如何通过发送键输入。

fill_in 使用 Capybaras :fillable_field 选择器,它通过 id、名称、占位符或关联的标签文本查找元素。因此,在该字段中输入文本的最简单方法就是执行

fill_in('Type a Catname or Kob name', with: 'Meow')

除此之外,您最近发布了一些混淆 CSS 选择器的问题。我认为您会真正受益于使用 https://flukeout.github.io/ 来学习和理解 CSS 选择器。您正在混淆元素类型选择器、class 选择器等。如果您真的想通过父元素的 class 名称来做到这一点,您可以执行类似

的操作
find('.selectize-input.items.not-full.ng-valid.has-options.ng-dirty input').send_keys('Meow')

但这确实是一种糟糕、脆弱的方法。注意在 CSS 选择器中 class 名称前面的 .,父级和后代选择器之间的 space,元素类型选择器前面没有 .