我有多个具有相同类名的div。我能够通过findelements代码检索所有div。但是我在其中一个div中有一个select元素。我正在尝试检索div中的select元素。
HTML代码如下。
我试过的硒代码。
IList <IWebElement> elements = driver.FindElements(By.XPath("//div[@class='className']"));
foreach (IWebElement widget in elements)
if(widget.FindElement(By.TagName("select").Enabled)
----- Perform sone operations-----
以上代码无效。任何人都可以建议解决方案来识别选择元素。
答案 0 :(得分:1)
否则
IWebElement element = driver.FindElement(By.XPath("//div[@class='className']//select"));
将直接转到您要与之互动的select标记。
如果发生这种情况会返回多于1个元素,则可以通过向xpath上的select标记提供类或任何其他属性来进一步缩小搜索范围,如下所示:
IWebElement element = driver.FindElement(By.XPath("//div[@class='className']//select[contains(@X,'Y')]"));
<强>其中:强>
X - 可以是该元素的任何属性(id,name,class ...)
Y - X属性的子字符串值
举个例子:
This页面:
"//div//ul/li/a"
会给你57场比赛;
"//div//ul[contains(@class,'sf-menu')]/li/a"
会给你3场比赛;
"//div//ul[contains(@class,'sf-menu')]/li/a[contains(@title,'Dress')]"
会给你1场比赛;