2017-07-28 93 views
0

我的頁面上有兩個字段集。他們沒有任何身份證件或班級。 現在我想填充第二個字段集中的特定字段。如何在fieldset中找到沒有class或id的元素

目前,我一個做這樣的事情這是不工作:

within_fieldset('fieldset') do 
    fill_in 'app_answers_attributes_0_answer', with: 'My First Answer' 
end 
click_on 'Submit' 

而且它給錯誤:

Capybara::ElementNotFound: Unable to find fieldset "fieldset"

如何做到這一點任何想法?

回答

1

within_fieldset需要字段集的編號或圖例文本 - http://www.rubydoc.info/gems/capybara/Capybara/Session#within_fieldset-instance_method - 所以這並不令人驚訝within_fieldset('fieldset')不適用於您。你如何做你想做的事情取決於你如何構建HTML。舉例來說,如果你的fieldsets有傳說

<fieldset> 
    <legend>Something</legened> 
    ... 
</fieldset> 
<fieldset> 
    <legend>Other thing</legened> 
    ... 
</fieldset> 

你可以做

within_fieldset('Other thing') do 
    ... 
end 

如果你沒有傳說,但有包裹件

<div id="first_section"> 
    ... 
    <fieldset>...</fieldset> 
<div> 
<div id="second_section"> 
    <fieldset>...</fieldset> 
</div> 

那麼你可以只範圍使用CSS到正確的字段集

within('#second_section fieldset') do 
    ... 
end 

相反,如果字段集是兄弟

<div> 
    <fieldset>...</fieldset> 
    <fieldset>...</fieldset> 
</div> 

那麼你可以範圍,用CSS兄弟選擇

within("fieldset + fieldset") do 
    ... 
end 
第二字段集