Selenium:FindsBy collection
Selenium: FindsBy with collection
我是测试初学者,有一个问题。如果我使用 FindsBy
属性,我该如何正确使用 ReadOnlyCollection<IWebElement>
。我的 collection 在开始测试后总是空的。这是我在 C# 中的代码:
[FindsBy(How = How.Name, Using = "role")]
public ReadOnlyCollection<IWebElement> radPercentage { get; }
这里是测试网站:http://testwisely.com/demo/survey
我想做这样的事情:radPercentage[2].Click();
试试这个。
public void FindStuff()
{
var stuff = driver.FindElements(By.Name("role"));
stuff[2].Click();
}
您需要在使用集合之前调用 InitElements。传递驱动程序和包含 FindsBy 属性的 class 实例(在我的代码 "this" 中)。
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://testwisely.com/demo/survey");
PageFactory.InitElements(driver, this);
IWebElement radio = this.radPercentage[2];
方法 InitElements 期望 属性 是 IWebElement 或 IList 类型 IWebElement
[FindsBy(How = How.Name, Using = "role")]
public IList<IWebElement> radPercentage;
我是测试初学者,有一个问题。如果我使用 FindsBy
属性,我该如何正确使用 ReadOnlyCollection<IWebElement>
。我的 collection 在开始测试后总是空的。这是我在 C# 中的代码:
[FindsBy(How = How.Name, Using = "role")]
public ReadOnlyCollection<IWebElement> radPercentage { get; }
这里是测试网站:http://testwisely.com/demo/survey
我想做这样的事情:radPercentage[2].Click();
试试这个。
public void FindStuff()
{
var stuff = driver.FindElements(By.Name("role"));
stuff[2].Click();
}
您需要在使用集合之前调用 InitElements。传递驱动程序和包含 FindsBy 属性的 class 实例(在我的代码 "this" 中)。
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://testwisely.com/demo/survey");
PageFactory.InitElements(driver, this);
IWebElement radio = this.radPercentage[2];
方法 InitElements 期望 属性 是 IWebElement 或 IList 类型 IWebElement
[FindsBy(How = How.Name, Using = "role")]
public IList<IWebElement> radPercentage;