0
votes

Crimination Web (le nom de la classe change)

J'utilise sélénium pour télécharger des images pour mon projet!

Pour télécharger des images, j'utilise les lignes de commande suivantes: xxx

puis, à l'aide de Image_url, i Téléchargez les images.

Le problème est que, après plusieurs essais, le nom de la classe passe à "Main-paresseux".

Je peux changer manuellement le "Main" à "Main- fainéant". Y a-t-il un moyen de le faire par code.

Je cherche un moyen de dire au code qui trouve le nom de la classe de "Main-paresseux" est le nom de la classe de "Main" n'est pas disponible!


1 commentaires

Vous pouvez essayer d'obtenir la classe "principale" en premier. Si cela n'existe pas, essayez «Main-paresseux».


4 Réponses :


1
votes

Pourquoi pas ESSAY / SAUF CODE>?

try:
   image_lm = prd.find_element_by_class_name('main')
except Exception as e:
   print("changing to main_lazy \n"+e)
   image_lm = prd.find_element_by_class_name('main_lazy')


0 commentaires

1
votes

Si les seules deux variantes sont "principales" et "Main-paresseux", vous pouvez essayer d'utiliser: xxx

désolé c'est c # variation mais je suis sûr que vous pouvez trouver le python équivalent.


0 commentaires

1
votes

Vous pouvez utiliser CSS ou Syntaxe de

image_lm = prd.find_element_by_css_selector('.main, .main-lazy')


0 commentaires

1
votes

Nom de classe comme Main-paresseux indique que les éléments sont chargés via . Dans de tels cas, vous devez induire webDriverwait et vous pouvez classer vérifier la vérification des deux éléments utilisant à travers une expression de Lambda comme suit:

  • Utilisation class_name 1: XXX

  • Utilisation class_name 2: XXX

    Au fur et à mesure que vous pouvez classer, consultez les deux éléments à l'aide de l'équivalent comme suit:

    • en utilisant css_selector : XXX

    • note : Vous devez ajouter les importations suivantes: XXX

      Vous pouvez trouver une discussion pertinente dans Selenium deux tests XPath dans un


0 commentaires