2017-12-27 5 views
0

저는 Windows에서 ctrl을 사용하고 MacOS에서 command 키를 사용하여 다중 선택을 테스트하는 Capybara 테스트를 작성하려고합니다.Capybara와 Poltergeist를 Ctrl + 클릭하여 수행 할 수 있습니까?

셀렌을 내 드라이버로 사용하는 경우에만 작동하는 해결책을 발견했습니다. Testing jQuery Selectable capybara or selenium (ctrl + click)

그러나 솔루션은 Poltergeist 드라이버에서 작동하지 않습니다. 폴 테지 지스트는 현재 Ctrl + 클릭을 수행 할 수 있습니까?

답변

0

안과 전문의는 없습니다. 검사를 위해 Poltergeist를 사용해야하는 경우 JS에서 이벤트를 작성하고 실행하는 데 아마도 execute_script을 사용해야 할 것입니다. JS 위젯 인 경우에만 적용됩니다. 다중 속성이있는 HTML 선택 인 경우 각 옵션을 개별적으로 선택할 수 있어야하며 배수를 선택해야합니다.

+0

감사합니다. Thomas! 나는이 해결책을 잘 알고있다 : https://stackoverflow.com/questions/8474103/is-there-a-way-to-send-key-presses-to-webkit-using-capybara 비록 KeyboardEvent를 사용하는 것을 제안한다. keycode는 MDN에 따라 권장되지 않으며 권장되지 않습니다. 'li'HTML 요소를 선택하려고합니다. 문제는 우리가 다중 선택을하기 위해 사용자가 'Ctrl'또는 'Shift'를 누른 상태로 있어야한다는 것입니다. – SpartaSixZero

+0

@SpartaSixZero'send_keys'는 돌아 오기 전에 키를 놓으므로 뒤 따르는 클릭에 대해서는 다운되지 않습니다. 귀하의 설명에서 그 이벤트에 설정된 올바른 키보드 수정자를 사용하여 마우스 클릭 이벤트를 발행해야한다고 가정합니다. 당신의 코드가 키보드를 통해 다중 선택을하는 방법을 구현한다면, 아마도'send_keys'로 그렇게 할 수 있습니다 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#send_keys-instance_method - in 크로스 드라이버 방식 –

+0

불행히도, 우리의 요구 사항은 다중 선택을하기 위해 왼쪽 마우스 클릭과 keydown의 조합이 필요하다고 말합니다. 따라서 send_keys는 마우스 클릭이 아닌 키만 가져 오기 때문에 send_keys가 도움이 될 것이라고 생각하지 않습니다. 저는 키 프레스로 멀티 선택을 할 수 있을지 의심 스럽습니다. 단지 카피 바라 테스트 패스를 만들기위한 노력만큼 가치가 없습니다. – SpartaSixZero

관련 문제