查找其他元素,如select,div中的按钮在selenium中具有相同的类名

时间:2017-06-20 02:20:10

标签: selenium-webdriver

我有多个具有相同类名的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-----

以上代码无效。任何人都可以建议解决方案来识别选择元素。

1 个答案:

答案 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页面: enter image description here

"//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场比赛;

祝你好运!