我有一個試圖用 Capybara 填充的文本框。我試圖玩弄它并試圖找出一些問題,但我的測驗沒有通過。
這里是
這是針對這個特定的文本框:
<span class="ui-grid-header-cell-label ng-binding" ui-grid-one-bind-id-grid="col.uid '-header-text'" id="14213131-uiGrid-0008-header-text">DOB</span>
<input type="text" class="ui-grid-filter-input ui-grid-filter-input-0 ng-touched" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || ''}}" aria-label="Filter for column" placeholder="" aria-invalid="false" style="">
這是我的代碼。
find('ui-grid-filter-input ui-grid-filter-input-0 ng-touched').set('1414234')
理想情況下,我試圖找到這個特定的文本框并輸入一些內容。
uj5u.com熱心網友回復:
要填充<input>using Capybara,您可以使用以下任一定位器策略:
find('[aria-label=Filter for column]').set('1414234')
要么
find('input[aria-label=Filter for column]').set('1414234')
uj5u.com熱心網友回復:
作為 CSS 選擇器 'ui-grid-filter-input ui-grid-filter-input-0 ng-touched' 正在尋找一個ng-touched元素的后代ui-grid-filter-input-0元素,該元素是元素的后代ui-grid-filter-input- 這顯然不是你想要什么。由于您正在嘗試匹配類,因此您需要使用以開頭的 CSS 類選擇器.
find('.ui-grid-filter-input.ui-grid-filter-input-0.ng-touched')
將是做你正在做的事情的正確方法,但是你可能并不真的需要所有這些類,而且你指定的越多,你制作的選擇器就越脆弱。很可能只是
find('.ui-grid-filter-input-0').set('1414234')
會做你想做的——或者更好
find('.ui-grid-filter-input-0').fill_in(with: '1414234')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449456.html
標籤:红宝石 硒 ruby-on-rails-4 rspec 水豚
