Behat comment cliquer sur un autre élément

Krzysztof Dabrowski

J'ai un HTML produit par Drupal qui ressemble plus ou moins à ça (sous forme simplifiée)

<fieldset data-drupal-selector="ts-and-cs" id="edit-fieldset-ts-and-cs" class="js-form-item">
  <label class="js-form-type-checkbox js-form-item-ts-and-cs" data-validation="single-checkbox">
    <input required="required" class="required form-checkbox" data-drupal-selector="edit-ts-and-cs" type="checkbox" id="edit-ts-and-cs" name="ts_and_cs" value="1" aria-required="true">
      <span class="checkbox-label">I have read and agree to <a href="http://domain/tc.pdf">Terms & Conditions</a> *</span>
  </label>
</fieldset>

Grâce à CSS et JS sophistiqués, il y a une belle case à cocher construite avec CSS qui est attachée dans span comme :: avant le pseudo-élément donc le HTML rendu final ressemble plus ou moins à ça

<span class="checkbox-label">
  ::before
  "I have read and agree to "
  <a href="http://domain/tc.pdf">Terms & Conditions</a>
  " *"
</span>

Dans le même temps, les éléments d'entrée deviennent bien sûr cachés et ne sont pas accessibles par Behat et toute tentative de l'attraper génère des erreurs comme celle-ci:

When I check "edit-ts-and-cs"
  Element is not currently visible and so may not be interacted with

Maintenant, le problème est que ce sur quoi l'utilisateur clique réellement, pour confirmer son accord avec les CGU, l'est effectivement, span.checkbox-label::beforemais un tel sélecteur est rejeté car le sélecteur CSS ne les prend pas en charge https://symfony.com/doc/current/components/css_selector.html et ceci est un composant crucial de Mink pour l'implémentation PHP qui génère des erreurs comme celle-ci

 Pseudo-elements are not supported. (Symfony\Component\CssSelector\Exception\ExpressionErrorException)

Lorsque j'essaie d'omettre :: before dans le sélecteur, toute tentative provoque une action de clic pour attraper le lien existant et suit href et s'éloigne de la page vers le document PDF.

Une idée comment le résoudre et forcer Behat à produire le bon clic JS?

Il s'agit bien sûr du mode @Javascript. Il n'y a aucun problème pour fonctionner en mode non JS et vérifier directement les entrées car dans ce cas elles sont visibles.

Krzysztof Dabrowski

À la fin, j'ai dû modifier le html et le texte initial enveloppé qui est également cliquable avec un élément span supplémentaire, donc à la fin, cela ressemble à ça:

<span class="checkbox-label">
  ::before
  <span>I have read and agree to</span>
  <a href="http://domain/tc.pdf">Terms & Conditions</a>
  " *"
</span>

qui est devenu sélectionnable et cliquable par

When I click on element "#edit-fieldset-ts-and-cs span.checkbox-label span"

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment cliquer sur un élément en fonction du texte d'un autre élément

Comment cliquer sur un élément et ajouter du texte dans un autre élément

Kotlin: Comment cliquer sur un élément dans un Recyclerview dans un autre Recyclerview

Comment cliquer sur un élément <Td>

Comment cliquer sur le lien couvert par un autre élément? Python 3.6 et Selenium

Comment vérifier un élément de table et cliquer sur un autre élément avec Selenium

Ajax lier cliquer sur un autre élément

Cliquer sur un élément déclenche le clic sur un autre élément [JQuery]

impossible de cliquer sur l'élément approprié dans un autre élément

Comment cliquer par programme sur un élément en JavaScript?

Comment cliquer sur un élément via Selenium Python

Comment cliquer sur un élément caché dans Selenium WebDriver?

Espresso - Comment cliquer sur un élément RecyclerView au hasard?

Marionnettiste - comment cliquer sur un élément intérieur

Comment cliquer sur un élément dans Robot Framework Selenium

Comment cliquer sur un élément d'emballage ReactJS ?

Comment cliquer sur un élément Web particulier dans Appium

vba: Comment cliquer sur un élément dans iframe

Comment cliquer sur un élément avec Selenium webdriver javascript?

Comment cliquer sur un élément de bouton avec Jasmine ?

Comment cliquer conditionnellement sur un élément dans Protractor ?

Python Selenium - Comment cliquer sur un élément sans bouton

JS: Impossible de cliquer sur un élément pour déclencher un clic sur un autre

Passer un autre élément à cliquer

S'il y a un élément spécifique sur la page, cliquer sur un autre élément via Javascript userscript ?

Le sélénium ne peut pas cliquer sur l'élément car un autre élément le masque

Impossible de cliquer sur un élément qui est chevauché par un autre élément en utilisant (sypress framework)

Comment cliquer sur un élément "DIV" sur un site, en utilisant JavaScript

Impossible de cliquer sur un élément

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  3. 3

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  4. 4

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Exporter la table de l'arborescence vers CSV avec mise en forme

  7. 7

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  8. 8

    Créer un système Buzzer à l'aide de python

  9. 9

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  10. 10

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  11. 11

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  12. 12

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  13. 13

    Conversion double en BigDecimal en Java

  14. 14

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  15. 15

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  18. 18

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  19. 19

    comment afficher un bouton au-dessus d'un autre élément ?

  20. 20

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  21. 21

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

chaudétiquette

Archive