Je suis nouveau sur xpath, essayant d'obtenir la valeur de la "valeur" en utilisant xpath:
<input type="submit" value=" Search " class="long searchButton" style="width:190px !important;">
alors qu'il est facile de trouver un élément par "type="submit"
comme:
browser.find_elements_by_xpath("//*[@type='submit']")
Je n'ai pas pu trouver comment obtenir les valeurs dont j'ai besoin, comme:
browser.find_elements_by_xpath("//*[@type='submit']/@value")
donne quelque peu une erreur:
expression "//*[@type=\'submit\']/@value" is: [object Attr]. It should be an element
Des idées pour résoudre ceci?
EDIT: Le xpath est correct, mais il "retourne" un attribut obj et comme ce n'est pas un élément, il n'est pas autorisé. Je ne trouve pas de méthode comme get_attr_by_xpath (), ou quelque chose de similaire.
J'ai finalement utilisé get_attribute("value")
comme:
for i in browser.find_elements_by_xpath("//*[@type='submit']"):
print i.get_attribute("value")
Ce serait comme ça
browser.find_elements_by_xpath("//*[@type='submit']/@value").text
Mise à jour:
Avec la fonction que vous utilisez, nous ne pouvons extraire l'élément que son attribut. Pour obtenir son attribut, l'expression doit ressembler à ceci
browser.find_elements_by_xpath("//*[@type='submit']").get_attribute("value")
Je sais certainement que cela a été publié il y a plus de 2 ans, mais je voudrais en ajouter un peu qui a été omis. Selenium fournit des mots intégrés qui pourraient être utilisés pour extraire le texte entre les balises ou les valeurs d'attribut réelles à l'intérieur des balises.
${XPATH} xpath=(//td[@title='mytitle']/../td)[2]
Voici un petit exemple:
${THE_NAME}= Get Text ${XPATH}