Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C从Selenium元素中获取元素_C#_Selenium_Selenium Webdriver_Webdriver_Element - Fatal编程技术网

C# 如何使用C从Selenium元素中获取元素

C# 如何使用C从Selenium元素中获取元素,c#,selenium,selenium-webdriver,webdriver,element,C#,Selenium,Selenium Webdriver,Webdriver,Element,如何从元素中选择元素。例如,我有一个next element div block,希望从该div block中选择所有类型等于radio的元素: private static readonly By divBlock =By.XPath("//*[@contains(@id, 'qst_8220_qst_8235')]"); private static readonly By elementType = By.XPath(".//*[@type='radio']"); 此代码不适用于我

如何从元素中选择元素。例如,我有一个next element div block,希望从该div block中选择所有类型等于radio的元素:

 private static readonly By divBlock =By.XPath("//*[@contains(@id, 'qst_8220_qst_8235')]");

 private static readonly By elementType = By.XPath(".//*[@type='radio']");
此代码不适用于我:

foreach (var elem in WebDriver.FindElement(divBlock).FindElements(elementType))
        {
            elem.Click();
        }
错误:对象引用未设置为对象的实例

试着这样做:

IWebDriver Driver = new (select some driver);

var divBlock = Driver.FindElement(By.Xpath("//*[@contains(@id, 'qst_8220_qst_8235')]"));

var elementType = Driver.FindElements(By.XPath(".//*[@type='radio']"));

foreach (var elem in elementType.Count)
{
elem.Click();
}

IWebElement具有方法findelements。所以你可以这样试试

private static readonly By divBlock =By.XPath("//*[@contains(@id, 'qst_8220_qst_8235')]");

private static readonly By elementType = By.XPath(".//*[@type='radio']");

IWebElement Block = Driver.FindElement(divBlock);

List<IWebElement> elementTypes = Block.FindElements(elementType);

Console.WriteLine(elementTypes.count);

foreach (var elem in elementTypes)
{
    elem.Click();
}

为什么或如何不起作用?您得到了什么错误?错误:对象引用未设置为对象的实例。谢谢显示发生此错误的行。我认为这个WebDriver是您的驱动程序的一个实例。所以可能你没有初始化它。它必须类似于:IWebDriver WebDriver=新的ChromeDriver;所有内容都已初始化,错误发生在:WebDriver.FindElementdivBlock.findelementSelementTypeForeach var elem当您说“不工作”时,什么内容不工作?您得到了什么错误?相同的错误:错误:对象引用未设置为对象的实例。您以后甚至没有使用divBlock。我编辑了从var到IWebelement的foreach循环。如果在foreach循环中出现错误,请尝试这样做。