如何从div块中获取包含type = radio的所有元素?

时间:2015-08-19 09:18:06

标签: c# .net selenium

也许有人可以帮我解决如何使用type =“radio”获取某些块div中Selenium中的所有元素 - 例如:

我有divBlock = By.CssSelector("input[class='Vertical Radio']");

如何获取divBlock中的所有元素以及divBlock中的元素是否具有type =“radio”,单击此元素?

2 个答案:

答案 0 :(得分:0)

希望我理解正确:您希望从div块中获取所有子节点,其中您要单击单选按钮...

这里是Java,但我想你可以轻而易举地将它转换为C#: 您可以使用xpath获取所有子节点

By divBlock = By.CssSelector("input[class='textboxDate hasDatepicker']");
WebElement divElement = driver.findElement(divBlock);

//xpath to get all direct child nodes use "//" to get all child nodes and child of child nodes
String xpathExpression = "./*";
List<WebElement> elements = driver.findElements(By.xpath(xpathExpression));

for(WebElement element : elements) {
    if(element.getAttribute("type").equals("radio")) {
        element.click();
    }
}

答案 1 :(得分:0)

你可以这样写:

foreach(var elem in driver.FindElement(divBlock).FindElements(By.XPath(".//*[@type='radio']")))
{
     elem.Click();
}