Selenium:通过集合查找

本文关键字:集合 查找 Selenium | 更新日期: 2023-09-27 17:52:56

我是测试的初学者,有一个问题。如果我使用属性FindsBy,如何正确使用ReadOnlyCollection<IWebElement>。我的集合在开始测试后总是空的。下面是我的c#代码:

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

,这里是测试web: http://testwisely.com/demo/survey

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

Selenium:通过集合查找

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

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

试试这个

public void FindStuff()
{
    var stuff = driver.FindElements(By.Name("role"));
    stuff[2].Click();
}