반응형
숨겨진 필드를 카피 바라로 채우는 방법?
텍스트 필드, 텍스트 영역 또는 암호 필드에 값을 설정하고 싶을 때에서와 같이 ID, 이름 또는 레이블을 사용할 수 있다는 것을 이미 발견 something
했습니다 fill_in something, :with => some_value
. 그러나 이러한 접근 방식은 값을 <input type="hidden">
필드 로 설정하려고 할 때 실패 합니다 (그리고 별도로 테스트하는 일반적으로 채워지는 클라이언트 측 스크립트이기 때문에 수행하고 싶습니다). 카피 바라로 어떻게 이런 숨겨진 필드를 설정할 수 있습니까? 가능합니까?
HTML :
<input id='offer_latitude' name='offer[latitude]' type='hidden'>
<input id='offer_longitude' name='offer[longitude]' type='hidden'>
투기:
describe "posting new offer" do
it "should add new offer" do
visit '/offer/new'
fill_in 'offer[latitude]', :with => '11.11'
fill_in 'offer[longitude]', :with => '12.12'
click_on 'add'
end
end
제공합니다 :
1) posting new offer should add new offer
Failure/Error: fill_in 'offer[latitude]', :with => '11.11'
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'offer[latitude]' found
숨겨진 필드를 찾아 값을 설정해야합니다. 몇 가지 방법이 있습니다. 이것이 아마도 가장 간단한 방법 일 것입니다.
find(:xpath, "//input[@id='my_hidden_field_id']").set "my value"
프로덕션에서 client_side 스크립트를 실행하는 경우 capybara에게 자바 스크립트 호환 드라이버로 실행하도록 지시 할 수 있습니다.
page.execute_script("$('hidden_field_id').my_function()")
동일한 결과를 얻는 방법에는 여러 가지가 있습니다. 내가 가장 좋아하는 것은 :
first('input#id.class', visible: false).set("your value")
드라이버로 poltergeist / phantomjs를 사용하고 jquery가 작동하지 않는 경우 항상 좋은 구식 js가 있습니다.
page.execute_script("document.getElementById('#some-id').value = 'some-value'");
참조 URL : https://stackoverflow.com/questions/10804897/how-to-fill-hidden-field-with-capybara
반응형
'Programing' 카테고리의 다른 글
mysql의 테이블에서 모든 레코드 삭제 (0) | 2020.12.29 |
---|---|
WordPress 설치의 wp_options 테이블에서 과도 현상을 제거 할 수 있습니까? (0) | 2020.12.29 |
제약 조건을 동시에 충족 할 수 없습니다. 제약 조건이 없습니다. (0) | 2020.12.29 |
Github로 푸시 할 때 Git 푸시가 중단됩니까? (0) | 2020.12.29 |
Android 애니메이션 알파 (0) | 2020.12.29 |