从选择列表中检索值

本文关键字:检索 列表 选择 | 更新日期: 2023-09-27 18:16:13

我最近开始使用WatiN在一个网站上测试一些东西。

我想问,是可能的:如果我有一个选择列表在我的页面上,我可以检索所有的值与文本从它在一个字典?

比如说我有一个列表:

<SELECT NAME="mylist" onChange="disp_text()">
<OPTION VALUE="m1">Cape Fear
<OPTION VALUE="m2">The Good, the Bad and the Ugly
<OPTION VALUE="m3">The Omen
<OPTION VALUE="m4">The Godfather
<OPTION VALUE="m5">Forrest Gump
</SELECT>

所以我想有一个字典,这些值<string, string> dictionary.add(m1, "cape fear");…等

有可能用等待来处理吗?以及如何?


另一个问题是,当我点击一个链接,它在IE中打开一个新的选项卡,我如何关闭只有新打开的选项卡,并继续在主页上做工作?

从选择列表中检索值

这可能对你的第一个问题有帮助

        SelectList region1 = browser.SelectList(Find.ByName("mylist"));
        Dictionary<string, string> optionsdictionary = new Dictionary<string, string>();
        foreach (Option option in region1.Options)
        {
            optionsdictionary.Add(option.Value, option.Text);
        }

第二个问题,我用FireFox试了试,它可以工作,但就像Otiel说的,你应该单独发布问题。

        browser.GoTo("http://news.google.co.in/nwshp?hl=en&tab=wn");
        Link newslink = browser.Link(Find.ByUrl("somelink"));
        newslink.Click();
        FireFox newbrowser = FireFox.AttachTo<FireFox>(Find.ByUrl("somelink"));
        newbrowser.Close();

或者,您可以让linq为您做这些艰苦的工作:-

SelectList regionLst = browser.SelectList(Find.ByName("mylist"));
Dictionary<string, string> optionsDictionary = regionLst.Options.ToDictionary(option => option.Value, option => option.Text);

只是一个警告。这个例子和Ashish提供的例子都依赖于你的选择列表中没有重复的"选项值"。HTH !