【发布时间】:2017-06-02 02:01:19
【问题描述】:
我正在尝试创建一个给定 WebElement 查找并返回下一个元素的方法。我已经找到了很多关于使用 XPath 和“following”或“following-sibling”应该如何工作的例子,但我无法让它工作。出于问题的目的,我将显示 html,但元素类型与我需要的无关,因为我想要一个通用方法,给定任何类型的任何元素(a/ul/div/whatever)它将返回下一个兄弟姐妹,不分类型。
<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() 可以做的事情
【问题讨论】:
标签: c# selenium selenium-webdriver