为什么网络浏览器下拉菜单不更新价格

本文关键字:更新 下拉菜单 网络 浏览器 为什么 | 更新日期: 2023-09-27 18:30:41

我有一个程序,可以自动选择下拉列表中的每个值并复制每个自己的价格。

我遇到的问题是,即使我的程序选择了一个特定的值 - 该特定值也没有显示它自己的特定价格。

这是我正在使用的代码:

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-or-180-K-Cups-/111042016413?

在该网页中,有一个表示"盒子大小"的下拉列表。

因此,根据上面的代码,它可以突出显示并选择 框大小,然后选择一个值,即 48。

它还应该更新并显示价格,但它没有。

现在,如果您手动单击下拉列表并选择 48,价格将变为"39.47 美元"

但是我上面使用的代码可以选择值,但价格不会更改为"US $ 39.47"

当我使用Opera互联网浏览器更深入地挖掘网站的源代码时,我注意到它有一个事件侦听器,其中包含以下代码:

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

这是我需要帮助的部分。如果您可以重新创建我正在使用的代码,您会注意到它将成功选择正确的值,但它似乎没有更新价格。即使我已经选择了该值,如何更新价格?

为什么网络浏览器下拉菜单不更新价格

该页面加载了jQuery,因此您可以通过以下方式缩短代码(并解决您的问题):

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

希望有帮助。

我找到了答案

我使用的是Internet Explorer版本9。我将其降级到Internet Explorer版本7,因此,当我运行我的程序时,它选择了代表该特定值的值和价格成功显示

使用

htmlElement.RaiseEvent("onChange"); 

并在选择值后放置它。