簡體   English   中英

為什么網絡瀏覽器下拉列表不更新價格?

[英]Why does web browser drop down not update the price?

我有一個程序,可以自動選擇一個下拉列表中的每個值並復制它們各自的價格。

我的問題是,即使我的程序選擇了一個特定的值,該特定的值也未顯示其自身的特定價格。

這是我正在使用的代碼:

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)");
    }
}

這是我正在其中應用的網站的鏈接: http : //www.ebay.com/itm/Keurig-Tullys-French-Roast-Decaf-18-或 180-K-Cups- / 111042016413

在該網頁中,有一個下拉列表,代表“ Box Size”。

因此,根據上面的代碼,它可以突出顯示並選擇Box Size,然后選擇一個值為48的值。

它還應該更新並顯示價格,但沒有。

現在,如果您手動單擊下拉列表,然后選擇48,價格將變為“ US $ 39.47”

但是我在上面使用的代碼可以選擇值,但是價格不會更改為“ US $ 39.47”

當我使用Opera Internet Browser深入挖掘網站的源代碼時,我注意到它具有一個事件偵聽器,其中包含以下代碼:

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

這是我需要幫助的部分。 如果您可以重新創建我正在使用的代碼,您會注意到它會成功選擇正確的值,但是它似乎並未更新價格。 即使已經選擇了價格,如何更新價格?

采用

htmlElement.RaiseEvent("onChange"); 

並將其放置在選擇值之后。

該頁面已加載了jQuery,因此您可以使用以下代碼來縮短代碼(並解決您的問題):

$("#msku-sel-1").val(3);
$("#msku-sel-1").change();

希望能有所幫助。

我找到答案

我使用的是Internet Explorer版本9。我將其降級為Internet Explorer版本7,因此,當我運行程序時,它選擇了值和代表該特定值的價格成功顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM