是否有方便的方法来检查IWebElement
是否匹配By
选择器
类似的东西:
bool isMatch = iWebElement.Matches(By.CssSelector("[data-role='collapsible-set']"))
或以任何方式解决此问题。
我正在寻找符合特定条件的父元素的子元素
public IWebElement FindParent(IWebElement element)
{
var parents = element.FindElements(By.XPath(".."));
if (parents == null)
return null;
var possibleParent = parents.First();
var dataroleAttribute = possibleParent.GetAttribute("data-role");
if (dataroleAttribute != null && dataroleAttribute.Contains("collapsible-set"))
{
return possibleParent;
}
else
{
return this.FindParent(possibleParent);
}
}
我有一个父选择器,它具有可以覆盖的默认值,并且希望重用它,因为它可以从对象的外部进行配置。
public By ParentSelector
{
get { return parentSelector != null ? parentSelector : By.CssSelector("[data-role='collapsible-set']"); }
set { parentSelector = value; }
}
答案 0 :(得分:1)
对于CSS选择器,我设法绘制了它。
public static bool ElementIs(this IWebDriver driver, IWebElement item, By selector)
{
return (bool)(driver as IJavaScriptExecutor).ExecuteScript(string.Format("return $(arguments[0]).is(\"{0}\")", selector.ToString().Split(' ')[1]), item);
}