我想创建一个给定WebElement的方法找到并返回下一个元素。我发现了很多使用XPath和“follow”或“after-sibling”工作的示例,但是我无法使其工作。为了这个问题的目的,我将显示html,但是元素类型与我所需要的无关,因为我想要一个给定任何类型元素(a/ul/div/whatever)的泛型方法,它将返回下一个无论何种类型的兄弟姐妹。查找任何给定元素的下一个同胞Selenium WebDriver
<a id="blah" href="#" class="stuff">"My Label"</a>
<ul class="some-class">
<li>...</li>
<li>...</li>
</ul>
我的车调试代码:
IWebElement element = driver.FindElement(By.Id("blah"));
IWebElement nextElement = element.FindElement(By.XPath("//following-sibling::ul[@class='some-class']"));
我怀疑我的XPath语法是错误的......,我坦率地无言以对。 “//”是指相对于元素还是DOM本身?有没有办法做到这一点,而不知道下一个元素的标签是什么?我只想得到下一个元素,不管它是什么类型。我只想找出最简单,最普通的方法来做到这一点。我想有:
public IWebElement NextSibling(IWebElement element)
{
IWebElement nextSibling = element.FindElement(By.?("magical string to find next sibling"));
return nextSibling;
}
...这正是你已经可以做到在JavaScript与element.nextSibling()
谢谢!我通常不使用xpath。这让我度过了问题的第一部分。 – jibbs
即使您失败了,您也可以在此发布解决方案,以便我们可以帮助您解决此问题。 :) – acikojevic