0

ドロップダウン リスト内の各値を自動的に選択し、それぞれの価格をコピーするプログラムがあります。

私が抱えている問題は、私のプログラムが特定の値を選択したにもかかわらず、その特定の値が独自の特定の価格を示さなかったことです。

これは私が使用しているコードです:

foreach (HtmlElement htmlElement in this.webBrowser2.Document.GetElementsByTagName("select")) {
    if (htmlElement.OuterHtml.Contains("msku-sel-1")) {
        htmlElement.Focus();
        // htmlElement.RaiseEvent("onClick");
        htmlElement.InvokeMember("Click");
        htmlElement.SetAttribute("value", "3");
        //webBrowser2.Document.InvokeScript("(a)");
    }
}

これは、私が適用している Web サイトのリンクです

その Web ページには、「ボックス サイズ」を表すドロップダウン リストがあります。

したがって、上記のコードに基づいて、ボックス サイズを強調表示して選択し、値 48 を選択できます。

価格も更新して表示する必要がありますが、表示されませんでした。

ドロップダウン リストを手動でクリックして 48 を選択すると、価格は「US $39.47」になります。

しかし、上記で使用しているコードは値を選択できますが、価格は「US $39.47」に変わりません。

Opera Internet Browser を使用して Web サイトのソース コードをさらに深く掘り下げると、次のコードを含むイベント リスナーがあることに気付きました。

function(a){return typeof f!="undefined"&& (!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b}

これは私が助けを必要としている部分です。私が使用しているコードを再作成していただければ、正しい値が正常に選択されることに気付くでしょうが、価格は更新されないようです。すでに値を選択していますが、価格を更新するにはどうすればよいですか?

4

3 に答える 3

0

使用する

htmlElement.RaiseEvent("onChange"); 

値を選択してから配置します。

于 2013-09-10T03:30:59.613 に答える
0

私は答えを見つけました

Internet Explorer バージョン 9 を使用していました。Internet Explorer バージョン 7 にダウングレードしたため、プログラムを実行すると、値が選択され、その特定の値を表す価格が正常に表示されました。

于 2013-09-10T04:22:16.933 に答える