我是C#和Selenium WebDriver的新手。如何通过Selenium WebDriver使用C#获取下拉列表中的所有选项?
我知道如何选择/点击下拉列表中的选项,但在此之前我遇到了问题。由于下拉列表是动态生成的,我必须在运行每个案例之前从列表中获取所有选项/值。
有没有人亲切地告诉我如何从下拉列表中获取所有值/选项。我使用的是IE,而且我没有发现任何支持在Selenium.IE命名空间中为C#获取值/选项的方法。
我的例子: 列表包含几个时区:
<TD>
<select name = "time_zone">
<option value "-09:00"><script>timezone.Alaska</script></option>
<option value "+00:00"><script>timezone.England</script></option>
<option value "+02:00"><script>timezone.Greece</script></option>
<option value "+05:30"><script>timezone.India</script></option>
</select>
<TD>
这是在IE页面中的下拉列表,以及如何让动态生成的时区列表?
我的代码:
IWebElement elem = driver.FindElement(By.XPath("//select[@name='time_zone']"));
List<IWebElement> options = elem.FindElements(By.TagName("option"));
C#只是弹出一个错误: 无法隐隐蔽型 'OpenQA.Selenium.IWebElement' 到 'System.Collections.Generic.List'。存在明确的转换(您是否缺少演员?)。
感谢。
我已经添加WebDriver.dll和WebDriver.Support.dll到参考。无论如何, – 2012-03-05 08:35:11
,谢谢你们一切。我仍在寻找解决方案。 – 2012-03-05 08:41:13
如果你使用隐式类型,你的代码应该可以工作:var options = elem.FindElements(By.TagName(“option”)); – 2012-03-05 16:54:33