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

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


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

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

最佳答案

您需要在使用集合之前调用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方法期望属性为IWebElement或IWebElement的IList类型

[FindsBy(How = How.Name, Using = "role")]
public IList<IWebElement> radPercentage;

09-11 17:42