Ruby possède une excellente couche d'abstraction au-dessus de Selenium, appelée Capybara, que vous pouvez utiliser pour effectuer des tests fonctionnels, d'acceptation et d'intégration. Il existe également une autre bibliothèque appelée Cucumber qui va plus loin et vous permet d'écrire des tests en anglais.
Les deux bibliothèques sont construites au-dessus de Selenium, et peuvent être utilisées pour tester les principaux navigateurs, mais grâce à leurs couches d'abstraction, il est très facile d'écrire des tests à l'aide de ces bibliothèques (du moins, aussi facile que les tests fonctionnels).
Ma question est la suivante : Python a-t-il quelque chose de ce genre ? J'ai trouvé des Pythonistes faisant des tests fonctionnels avec divers outils mais ...
A) Splinter : n'utilise pas Selenium (et n'a pas de pilote IE)
-EDIT- Il semble que Spliter utilise désormais Selenium (voir les réponses ci-dessous).
B) Alfajor : n'a pas été mis à jour depuis plus d'un an ; semble mort.
C) Selenium (brut) : beaucoup de gens semblent utiliser Selenium directement, mais il semble qu'une couche d'abstraction pourrait le rendre beaucoup plus facile à utiliser.
Alors, quelqu'un connaît-il quelque chose qui ressemble à Capybara, ou mieux encore à Cucumber, pour Python (il n'est pas nécessaire d'utiliser Selenium, mais il faut que cela supporte tous les principaux navigateurs) ?
* EDIT *
Pour ceux qui ne sont pas familiers avec Capybara, il s'agit simplement d'ajouter une API pour qu'au lieu de l'API Selenium normale, vous puissiez faire quelque chose comme ceci :
When /I sign in/ do
within("#session") do
fill_in 'Login', :with => 'user@example.com'
fill_in 'Password', :with => 'password'
end
click_link 'Sign in'
end
Il est utilisé par Cucumber, qui vous permet d'aller plus loin dans l'abstraction (presque en anglais) :
Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
Then the result should be <output> on the screen
Examples:
| input_1 | input_2 | button | output |
| 20 | 30 | add | 50 |
J'adorerais avoir un équivalent de Python Cucumber, mais même un simple équivalent de Capybara serait utile.