J'essaie d'analyser la valeur de l'action de formulaire et le nom d'entrée avec la valeur du code HTML suivant:
<form method="post" action="actionURL" autocomplete="" name="login_form" id="login_form" onsubmit="return hash2(this)">
<input type="hidden" name=".tries" value="1">
<input type="hidden" name=".src" value="ym">
<input type="hidden" name=".md5" value="">
<input type="hidden" name=".hash" value="">
<input type="hidden" name=".js" value="">
<input type="hidden" name=".last" value="">
<input type="hidden" name="promo" value="">
<input type="hidden" name=".intl" value="us">
<input type="hidden" name=".lang" value="en">
<input type="hidden" name=".bypass" value="">
<input type="hidden" name=".partner" value="">
<input type="hidden" name=".u" value="8013sg1858dp9">
<input type="hidden" name=".v" value="0">
<input type="hidden" name=".challenge" value="fUhehaaMq9c2lQjndCps_rNu1eSB">
<input type="hidden" name=".yplus" value="">
<input type="hidden" name=".emailCode" value="">
<input type="hidden" name="pkg" value="">
<input type="hidden" name="stepid" value="">
<input type="hidden" name=".ev" value="">
<input type="hidden" name="hasMsgr" value="0">
<input type="hidden" name=".chkP" value="Y">
<input type="hidden" name=".done" value="somevalue">
<input type="hidden" name=".pd" value="ym_ver=0&c=&ivt=&sg=">
<input type="hidden" name=".ws" id=".ws" value="0">
<input type="hidden" name=".cp" id=".cp" value="0">
<input type="hidden" name="nr" value="0">
<input type="hidden" name="pad" id="pad" value="5">
<input type="hidden" name="aad" id="aad" value="5">
<div id='inputs'>
<label for='username'>Yahoo! ID</label>
<input name='login' id='username' maxlength='96' tabindex='1' value=''>
<p id='ex'>(e.g. test)</p>
<label for='passwd'>Password</label>
<input name='passwd' id='passwd' type='password' maxlength='64' tabindex='2'>
<div id="captchaDiv"></div>
</div>
<div id='fun'></div>
<div id='persistency'>
<input type='checkbox' name='.persistent' id='persistent' tabindex='4' value='y' >
<p>
<label for='persistent'>Keep me signed in</label>
<br>
<span id='uncheck'>(Uncheck if on a shared computer)</span>
</p>
</div>
<div id='submit'>
<button type='submit' id='.save' name='.save' class='secondaryCta' tabindex='5'>
Sign In
</button> </div>
</form>
Le formulaire ci-dessus contient, le type de saisie dans les enfants directs et à côté des enfants des enfants. Lors de l'utilisation de l'exemple ici: https://stackoverflow.com/a/9890022/1007447, la trace de code sur c # ne trouve aucun élément ni descendant pour le nom "form".
Comment obtenir l'action de formulaire et tous les types d'entrées avec une valeur? (Parfois, je dois aussi ignorer la partie nom d'utilisateur mot de passe)
Cela a été discuté à quelques reprises ici sur Stack Overflow.
La réponse se trouve dans la même question à laquelle vous faites référence. Tu dois faire:
HtmlNode.ElementsFlags.Remove("form");
var doc = ... //Load the document here
var nodes = doc.DocumentNode.SelectNodes("//form//input");
La clé est sur la ligne
HtmlNode.ElementsFlags.Remove("form")
et l'explication de la raison pour laquelle vous devez l'ajouter se trouve aux pages suivantes: