Modifica i valori delle pagine Web e invia per clic del pulsante?

.net c# html html-agility-pack

Domanda

HTML

    <head></head>
    <body class=" products show us">

    <header id="header"></header>
    <div id="wrap">
        ::before
        <div id="container" style="opacity: 1;">
            <div class="sidebar"></div>
            <article itemtype="http://schema.org/Product" itemscope="itemscope">
                ::before
                <figure>
                    <img id="img-main" src="test.jpg" itemprop="image" alt="test"></img>

        <div id="zoom-lens"></div>
        <div id="zoom-holder" style="background: url("test.jpg") no-repeat scroll 0px 0px transparent;" data-background-image="test.jpg"></div>
    </figure>
    ::after

</article>
<div id="details" data-style-limited-with-count="0" data-style-limited="false">

    <h1 itemprop="name"></h1>
    <p class="style" itemprop="model">

        White

    </p>
    <p class="description" itemprop="description"></p>
    <ul class="styles "> // STEP 1: GENERATE LIST OF STYLES PER data-style-name and select the one that matches via adding "selected" to a class""!
        ::before
        <li>
            <a class="selected" data-style-name="White" data-style-id="10570" data-sold-out="false" data-images="{"detail_url":"..."..."}" href="..." data-no-tubolink="data-no-tubolink"></a>

</li>
<li>

    <a class="" data-style-name="Black" data-style-id="10571" data-sold-out="true" data-images="{"detail_url":"..."..."}" href="..." data-no-tubolink="data-no-tubolink"></a>

    </li>
    ::after

</ul>
<p class="price" itemtype="http://schema.org/Offer" itemscope="itemscope" itemprop="offers"></p>

<div id="cart-controls">

    <div id="cart-controls"> // STEP 2 => OPEN THIS!
        <form id="cart-addf" class="add" method="post" data-remote="true" action="/shop/168934/add" accept-charset="UTF-8">

    <div style="margin:0;padding:0;display:inline"></div> // STEP 3: GENERATE LIST OF OPTIONS (UNKNOWN AMOUNT OF FIELDSETS) AND SELECT OPTION(S)!
    <fieldset>
        <select id="size" name="size">
            <option value="25134"></option>
            <option value="25135"></option>
            <option value="25136"></option>
        </select>
    </fieldset>
    <fieldset>
        <select id="qty" name="qty">
            <option value="1"></option>
            <option value="2"></option>
            <option value="3"></option>
            <option value="4"></option>
            <option value="5"></option>
            <option value="6"></option>
            <option value="7"></option>
            <option value="8"></option>
        </select>
        <a class="next" href="..."></a>
    </fieldset>
    <fieldset id="add-remove-buttons">
        <input class="button" type="submit" value="add to cart" name="commit"></input> // STEP 4: CLICK BUTTON!

                                    <a class="button continue" href="/shop"></a>
                                </fieldset>
                            </form>
                        </div>
                    </div>
                    <script id="cart-controls-add" type="text/x-nano-tmpl"></script>
                    <script id="cart-controls-remove" type="text/x-nano-tmpl"></script>
                    <script id="cart-controls-sold-out" type="text/x-nano-tmpl"></script>
                    <script id="cart-controls-limited" type="text/x-nano-tmpl"></script>
                </div>
            </div>
            ::after
        </div>
        <footer id="nav" style="opacity: 1;"></footer>
        <script type="text/javascript"></script>
        <script type="text/javascript"></script>
        <script type="text/javascript"></script>
    </body>

</html>

DESC

Sopra è il codice HTML a cui vorrei accedere, modificare i valori e quindi inviare i dati.

Sto usando c # net 4.0 e HTMLAGILITYPACK per raggiungere questo obiettivo.

Ho scritto all'interno dell'HTML sopra 4 commenti totali (4 cose in totale che è necessario).

Mi chiedevo se l'obiettivo di modificare i valori fosse possibile con HTMLAGILITYPACK e se fosse possibile fare clic su un pulsante nella pagina Web per inviare i valori che sarebbero stati modificati.

Ho trovato alcuni riferimenti su questo argomento, ma non so come usare correttamente.

1: Come fare clic su un elemento di collegamento in modo programmatico con HTMLElement?

2: fare clic sul pulsante automaticamente utilizzando HtmlAgilityPack

CODICE PSEUDO

 HtmlAgilityPack.HtmlDocument doc = null;
 doc = new HtmlAgilityPack.HtmlDocument();
 doc.LoadHtml(new WebClient().DownloadString("website above that contains that HTML"));

Risposta popolare

Non sono sicuro di cosa vuoi ottenere, ma penso che potrebbe essere sulla strada giusta:

Vedi questo per cambiare qualsiasi attributo in JQuery http://api.jquery.com/attr/

Vedi questo per cambiare / aggiungere cose che accadranno quando fai clic su qualcosa https://api.jquery.com/click/

Inutile dire che non credo che sia necessario fare in modo che il pulsante "clic su sé stesso", qual è il punto di esso allora? : P Ma puoi farcela, se fai clic su di esso, fa la prima cosa che dovrebbe prima, e poi la seconda cosa dopo, all'interno della funzione click di JQuery che presumibilmente farai.

Ma come detto pastoso, mi piacerebbe che tu approfondissi un po 'di più, sentiti libero di commentare e chiedere se qualcosa non è chiaro in questo post.



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché