使用 Selenium WebDriver C# 从下拉列表中选择一个值
我在使用 WebDriver 的 C# 绑定从下拉列表中选择值时遇到了困难。我过去既没有从事过 C# 工作,也没有从事过 WebDriver 工作。我正在使用 WebDriver - Selenium-dotnet2.0b3 和 Visual Studio C# 2010 Express 版本。 我已将 WebDriver.Common、WebDriver.Firefox 和 WebDriver.Remote 添加到我的解决方案中。我尝试使用这个 -
IWebElement dateOfBirth = webdriver.FindElement(By.Id("join_birth_day"));
List<IWebElement> dateOfBirthOptions = (List<IWebElement>)dateOfBirth.FindElement(By.TagName("option"));
foreach(IWebElement dateOfBirthOption in dateOfBirthOptions)
{
if (dateOfBirthOption.Equals("3"))
{
dateOfBirthOption.Select();
}
}
但在 NUnit 中运行我的解决方案时看到错误,
LiveCams.CreateAccount.createAccount:
System.InvalidCastException : Unable to cast object of type 'OpenQA.Selenium.Firefox.FirefoxWebElement' to type 'System.Collections.Generic.List`1[OpenQA.Selenium.IWebElement]'.
如果我不强制转换,那么将无法构建解决方案。 我想我在这里错过了一些微不足道的事情。有谁可以在这里指导我吗? 在 Selenium 1.0 中,下拉选择曾经如此简单:-/
I am having tough time in selecting value from drop down using C# binding of WebDriver. I have worked on neither C# nor WebDriver in past. I am using WebDriver - Selenium-dotnet2.0b3 with Visual Studio C# 2010 Express edition.
I have added WebDriver.Common, WebDriver.Firefox and WebDriver.Remote to my solution. I tried using this -
IWebElement dateOfBirth = webdriver.FindElement(By.Id("join_birth_day"));
List<IWebElement> dateOfBirthOptions = (List<IWebElement>)dateOfBirth.FindElement(By.TagName("option"));
foreach(IWebElement dateOfBirthOption in dateOfBirthOptions)
{
if (dateOfBirthOption.Equals("3"))
{
dateOfBirthOption.Select();
}
}
But got to see error, when running my solution in NUnit
LiveCams.CreateAccount.createAccount:
System.InvalidCastException : Unable to cast object of type 'OpenQA.Selenium.Firefox.FirefoxWebElement' to type 'System.Collections.Generic.List`1[OpenQA.Selenium.IWebElement]'.
And if I don't cast then would not be able to even build the solution.
I guess I am missing some thing trivial here. Any one who could guide me here?
Drop down selection used to be so simple in Selenium 1.0 :-/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
要从下拉列表中选择选项,请使用以下代码
根据文本选择值
根据值选择值
根据索引选择值
To select an Option from Drop Down use the below code
To select a value based on Text
To select a value based on Value
To select a value based on Index
1)使用已经评论过的 SelectElement - 如何使用 Selenium WebDriver C# 从下拉列表中选择一个选项? SelectElement 属于 OpenQA.Selenium.Support.UI 命名空间。
2)您还可以使用 css 选择器执行类似的操作:
1) Using a SelectElement as already commented - How to select an option from drop down using Selenium WebDriver C#? The SelectElement belongs to the OpenQA.Selenium.Support.UI namespace.
2) You could also do something like this with css selectors:
使用 OpenQA.Selenium.Support.UI 命名空间中定义的以下类 SelectElement,单词
Select
已在 C# 中使用,这就是其实现发生更改且类名称不同的原因。创建此类的对象,并且可以选择基于索引、文本和值的选择。
Use the Following Class SelectElement defined in OpenQA.Selenium.Support.UI namespace the word
Select
is already used in C# that is why its implementation is changed and class is named differently.Create an object of this class and there is option of selection based on index, text and value.