Sélénium - XPATH - la Recherche de l'élément par innerHTML

Je suis en train d'apprendre le Sélénium et en avoir une bonne compréhension de XPATH.

Une question, je suis en cours d'exécution, c'est que sur une page web, il y a un élément que je veux choisir qui a généré dynamiquement, un id et class. J'avais essayé le suivant:

code = driver.find_element_by_xpath("//*[contains(@text='someUniqueString')]")

cependant, l'élément n'est pas n'importe quel texte. C'est plutôt un <code> élément avec JSON.

<codestyle="display: none" id="something-crazy-dynamic"> 
    {"dataIWantToGrab":{"someUniqueString":...}}
</code>

Ce que je cherche à faire est de rechercher le innerHTML pour trouver une chaîne unique à l'aide de XPATH, mais je ne trouve pas de bonnes ressources.

J'ai essayé

driver.find_element_by_xpath("//*[contains(@innerHTML='someUniqueString')]")

mais je reçois l'erreur

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //*[contains(@innerHTML='someUniqueString')]

EDIT: ci-Dessous un lien pour le frère de texte, je travaille avec

https://gist.github.com/anonymous/b227e59c942e7ec9f5a851a3b7ecdfc6

EDIT 2: j'ai été en mesure de contourner cela, non pas en utilisant le Sélénium, mais avec BeautifulSoup. Pas l'idéal, mais encore une solution.

soup = BeautifulSoup(driver.page_source)
codes = soup.find_all("code")
found_json = [i for i in codes if i.text.find("someUniqueString") > 0]
Est une partie de la id est constante ou est-il dynamique?
il y a une partie qui est constante, mais 15 autres éléments ont les mêmes conventions de nommage
vous pouvez compter sur les parents, les enfants, les frères et sœurs. merci de partager les code HTML (5 éléments ci-dessus et au-dessous de l'élément donné)
J'ai inclus plus de html ici - gist.github.com/anonymous/b227e59c942e7ec9f5a851a3b7ecdfc6

OriginalL'auteur shartshooter | 2017-03-14