2 votes

Je ne peux pas sélectionner une date dans un sélecteur de date en utilisant Selenium et C#.

Toute première question sur Stack Overflow.

J'essaie d'écrire un script Selenium C# pour obtenir un devis sur cette page : https://www.comparethemarket.com/travel-insurance/single-trip/ (cliquez sur le bouton "Démarrer un devis" et vous arriverez sur la page). Sélectionnez un seul voyage et il y a des options de date de début - aujourd'hui, demain et autre. Je veux sélectionner n'importe quelle date dans le menu "autre" mais rien ne semble fonctionner.

Je peux facilement trouver les sélecteurs CSS, mais il me semble impossible de faire quelque chose avec eux. J'ai essayé SendKeys et Builder, et j'ai également essayé d'utiliser Javascript pour mettre à jour les valeurs qui apparaissent après une sélection réelle (le JS fonctionne dans le sens où il met à jour la page, mais lorsqu'on passe à la page suivante, les valeurs sont celles par défaut plutôt que celles mises à jour). Rien ne fonctionne. Quelqu'un peut-il fournir une solution à ce problème, s'il vous plaît ?

J'ai essayé :

element = (IWebElement)js.ExecuteScript("document.querySelector('#CoverStartDate div div > label:nth-of-type(3) div span span > span:nth-of-type(1)').innerText='" + startDateMonth + "';");

element = (IWebElement)js.ExecuteScript("document.querySelector('#CoverStartDate div div > label:nth-of-type(3) div span span > span:nth-of-type(2)').innerText='" + startDateDay + "';");

Le JS fonctionne mais ne résout pas le problème : lorsque je passe à la page suivante, la date est celle par défaut.

J'ai aussi essayé ça :

 IWebDriver d = new FirefoxDriver();
 Actions action = new Actions(d);
 action.(Various actions like click, double click, perform);

J'ai également utilisé SendKeys :

element.SendKeys(Keys.Tab);

pour mettre l'élément en surbrillance, puis cliquez (). J'ai même essayé .Submit() mais, comme il ne s'agit pas d'un formulaire, cela n'a pas fonctionné.

Pour être clair, lorsque j'ai utilisé SendKeys.Tab, je peux accéder à l'élément dont j'ai besoin. Je ne peux simplement pas cliquer dessus ou le sélectionner d'une autre manière.

0voto

Roybut Points 21

J'ai fini par trouver une solution moi-même et je vais donc poster ce message au cas où quelqu'un d'autre aurait un problème similaire. J'ai utilisé une collection pour obtenir tous les boutons, je les ai filtrés dans une autre collection sur la base d'une valeur d'attribut, puis j'ai pu cliquer sur la date requise.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X