1
我正在用水豚點擊一個複選框,但無論如何它似乎無法找到它。我能夠在跨度內正確找到跨度和標籤,但不能實際需要輸入。水豚:找不到元素
這裏是複選框
<span class="checkbox tos">
<input id="agreement" name="agreement" onclick="agreeValidate();" type="checkbox" value="false">
<label for="agreement">I accept the <a href="http://www.dev.com:3000/terms" target="_blank">Terms of Use</a>, <a href="http://www.dev.com:3000/privacy" target="_blank">Privacy Policy</a>, and am at least 13 years old</label>
</span>
這裏是一些我曾嘗試
page.check('agreement')
find(:css, '#agreement').set(true)
find('#agreement').set(true)
find('#agreement').click
不過的事情,他們都給予我同樣的錯誤
Unable to find css "#agreement" (Capybara::ElementNotFound)
我也我想知道這些方法中的任何一個會在點擊複選框時觸發onclick
方法嗎?我覺得find(:css, '#agreement').set(true)
不會觸發onclick
事件。但是,我不確定其餘的。
編輯** 我也試過通過xpath選擇元素。下面是我發現
find(:xpath, '//*[@id="registration"]/span[2]')
這是能夠找到span
元沒問題
find(:xpath, '//*[@id="registration"]/span[2]/input')
這不能找到我需要的元素的各種事情,但這個XPath正確選擇在鉻合金元素控制檯
find(:xpath, '//*[@id="agreement"]')
這不能找到我需要的元素,但XPath的選擇中鉻合金控制檯元素
find(:xpath, '//*[@id="registration"]/span[2]/label')
這能夠在span
中找到label
元素,沒有問題。
你能證明你的觀點(與例子/原因),爲什麼通過類/ ID與表單交互是一個壞主意嗎?至少根據我的經驗,這些改變的可能性比問題的文本要小得多。 – pixelearth