Каковы возможные причины того, что выполнение page.find_by_id(id)
работает, но выполнение page.assert_selector("tr##{id}") returns a
Capybara::ElementNotFound`?
Для фона я использую драйвер Poltergeist для Капибара.
У меня есть HTML, который структурирован следующим образом:
<tbody>
<tr id="1234">
<td>Rico Jones</td>
<td><a href="/price_requests/5678">Price Request</a></td>
</tr>
<tr id="2345">
<td>Rico Jones</td>
<td><a href=/price_requests/6789">Price Request</a></td>
</tr>
</tbody>
Я подтвердил, что мой HTML-код выводится, как и ожидалось, с помощью функции page.driver.debug
Полтергейста и просмотра фактического HTML-кода, сгенерированного тестом.
Когда я помещаю что-то подобное в свои тесты, я получаю ошибку Capybara::Poltergeist::InvalidSelector
с сообщением The browser raised a syntax error while trying to evaluate the selector
.
lead = Lead.first
assert_selector "tr##{lead.id}"
Я также получаю ошибку при этом:
lead = Lead.first
within "tr##{lead.id}" do
click_on "Price Request"
end
Однако использование find_by_id
работает:
lead = Lead.first
find_by_id(lead.id).click_on("Price Request")
Основываясь на моем понимании Capybara, этого не должно быть. Я делаю что-то неправильно?
id
для начала с буквы решило мою проблему. На самом деле я получал ошибкуCapybara::Poltergeist::InvalidSelector: The browser raised a syntax error while trying to evaluate the selector
, которая должна была предупредить меня. Хотите создать ответ, который я могу принять? - person Richard Jones   schedule 01.09.2013