Ich habe eine Situation in meiner Sicht, wo ein anklickbares Symbol nur sichtbar ist, wenn es div enthält (mit Knockout JS, SCSS). Etwas wie folgt aus:Capybara mit Selen: Ich kann nicht auf verstecktes Element klicken
HTML
<div id="button_div">
<i id="icon" data-bind="click: dosomething"></i>
</div>
SCSS
i {
display: none;
}
#button_div:hover {
i {
display: block;
}
}
Alles funktioniert auf der Seite gut, aber ich kann nicht scheinen, um herauszufinden, wie das Element in Capybara klicken. Ich habe versucht, das Hinzufügen von: sichtbaren Symbol der Methode, aber ohne Glück:
find('#icon', visible: false).click
Das gibt mir die ein „Selenium :: WebDriver :: Fehler :: ElementNotVisibleError“ Fehler.
Verwendung:
Capybara.ignore_hidden_elements = false
gibt mir genau die gleichen Fehler
ich auch eine Selen Aktion versucht habe, mit wie:
button_div_element = find('#button_div').native
button_element = find('#button', visible: false).native
page.driver.browser.action.move_to(button_div_element).click(button_element).perform
Während dies keinen Fehler werfen Es klickt auch nicht auf den Button.
Hat jemand eine Idee, was ich falsch machen könnte?
Dies scheint wie es sollte funktionieren, aber es nicht (zumindest für mich). Ich erhalte den Fehler "Element nicht gefunden", wenn ich auf das Symbol klicke. – nmg49
Hmm, dieses genaue Verhalten ist in Capybara getestet - https://github.com/jnicklas/capybara/blob/2a51b817b355f6c1a5e95a471a87f1a492562e55/lib/capybara/spec/session/node_spec.rb # L266 - nicht sicher, was in Ihrer App anders ist –
@ nmg49 was anderes CSS auf das Symbol –