2017-08-31 1 views
0

Existe-t-il un moyen d'obtenir une chaîne de tous les attributs d'un élément particulier?Selenium (C#) - Comment obtenir une chaîne d'attributs d'éléments

Par exemple, disons que mon élément est le suivant dans la page web:

<input id="SandBox1" checked="" class="float_right red white_stripes" value ="654288"> 

S'il possible d'obtenir une variable de chaîne de ce où il aurait les noms d'attributs et leurs valeurs tout dans une chaîne?

+0

Avec votre exemple donné, quelle est votre chaîne attendue? –

+0

La chaîne que j'espérais obtenir était quelque chose comme ceci: id = "SandBox1" vérifié = "" class = "float_right red white_stripes" valeur = "654288" – Tscott

+0

En utilisant l'exécuteur javascript avec la requête suivante: Element.outerHTML –

Répondre

1

Ci-dessous le code devrait le faire pour vous.

IJavaScriptExecutor js = (IJavaScriptExecutor)driver; 
var elem = driver.FindElement(By.Id("SandBox1")); 

string attributes = (string)js.ExecuteScript("var re = /<[^ ]+([^>]+)/i; return re.exec(arguments[0].outerHtml)[1];", elem); 

Mais il serait dans les cas où les attributs ont aussi un > la valeur

+0

Je pense que c'est ce que je cherche, mais je l'ai couru à plusieurs reprises et la chaîne continue à venir nulle. Je continuerai cependant à l'expérimenter et je reviendrai à vous sur ce sujet. – Tscott

+0

pouvez-vous essayer de remplacer 'outerHtml' avec' outerHTML'? –

+0

Cela a fonctionné pour moi! Je vous remercie! – Tscott