2

我是测试的初学者并且有一个问题。ReadOnlyCollection<IWebElement>如果我使用属性如何正确使用FindsBy。开始测试后,我的收藏始终为空。这是我在 C# 中的代码:

        [FindsBy(How = How.Name, Using = "role")]
        public ReadOnlyCollection<IWebElement> radPercentage { get; }

这是测试网站:http ://testwisely.com/demo/survey

我想做这样的事情: radPercentage[2].Click();

4

2 回答 2

2

您需要在使用集合之前调用InitElements 。传递驱动程序和包含FindsBy属性的类的实例(在我的代码“this”中)。

IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://testwisely.com/demo/survey");
PageFactory.InitElements(driver, this);
IWebElement radio = this.radPercentage[2];

方法 InitElements 期望属性的类型为IWebElementIWebElementIList

[FindsBy(How = How.Name, Using = "role")]
public IList<IWebElement> radPercentage;
于 2016-06-28T17:08:12.327 回答
0

尝试这个。

public void FindStuff()
{
    var stuff = driver.FindElements(By.Name("role"));
    stuff[2].Click();
}
于 2016-06-28T16:42:35.963 回答