Composé de sélénium noms de classe non autorisés
J'ai le code ci-dessous qui clique sur un élément pour afficher un écran et copier le texte
el1 = driver.find_element_by_id("keyDev-A")
el1.click()
el2 = driver.find_element_by_class_name("content")
print(el2.text)
Cependant, lorsque j'ai essayé d'obtenir selenium
de cliquer sur le bouton à l'intérieur de cette fenêtre par
el3 = driver.find_element(By.CLASS_NAME, "action-btn cancel alert-display")
el3.click()
Il produit un message d'erreur: invalid selector: Compound class names not permitted
C'est le code HTML que j'essaie d'obtenir selenium
cliquez sur. Le Close
bouton.
<div class="nav">
<span class="action-btn confirm prompt-display">Confirm</span>
<span class="action-btn cancel prompt-display">Cancel</span>
<span class="action-btn cancel alert-display">Close</span>
</div>
Comment dois-je écrire el3
afin de cliquer sur le bouton fermer?
Avez-vous vu stackoverflow.com/questions/10658907/... ? Cela pourrait aider.
Le sélénium ne prend pas en charge
Double Possible de Comment éviter Composé de nom de la Classe d'erreur dans la Page de l'Objet?
Le sélénium ne prend pas en charge
BY.CLASS_NAME
avec composé de la classe..vous devez utiliser cssSelector
ou XPath
pour trouver el3
ici...Double Possible de Comment éviter Composé de nom de la Classe d'erreur dans la Page de l'Objet?
OriginalL'auteur jake wong | 2016-06-12
Vous devez vous connecter pour publier un commentaire.
Léon commentaire conduit à corriger les informations qui aggravent les noms de classe sont plus pris en charge. Ce que vous pourriez faire à la place est d'essayer en utilisant les sélecteurs css. Dans votre cas, la ligne de code suivante devrait vous aider à obtenir l'élément que vous souhaitez :
Il trouve l'élément avec l'ensemble des trois classes (action-btn, d'annulation et d'alerte-l'affichage) dans l'attribut de classe. Notez que l'ordre des classes n'a pas d'importance ici, et toutes les classes peuvent apparaître n'importe où dans l'attribut de classe. Tant que l'élément a tous les trois classes, il sera sélectionné.
Si vous voulez que l'ordre des classes pour être résolu, vous pouvez utiliser le xpath suivante :
OriginalL'auteur sagarwadhwa1
Je suis en retard pour cette question. Mais j'ai aussi trouvé un travail autour en traitant les classes de composés comme une Chaîne de caractères, à l'aide de nom_du_tag, et get_attribute('class'), lorsque vous n'êtes pas familier avec Xpath. Il a besoin de quelques lignes de code, mais il est simple et adapté pour les débutants comme moi.
OriginalL'auteur William Tong