如何获取此 ID

G. *_*ena 5 c# linq selenium selenium-chromedriver selenium-webdriver

我正在使用 Selenium WebDriver 进行自动化,并且获得了表的所有元素。

我使用了下面的代码:

var qntd= driver.FindElements(By.XPath("//*[@id='dataTable']/tbody/tr")).Skip(3);
Run Code Online (Sandbox Code Playgroud)

然后我意识到每个元素生成的 Id 不是 Html 中所示的 Id

在此输入图像描述 在此输入图像描述

我尝试通过查询检索此 id,但我不能,因为返回的是 HTML Id 属性

var query = from a in qntd
                select a.GetAttribute("Id");
Run Code Online (Sandbox Code Playgroud)

该 ID 从哪里来以及如何检索它?

st0*_*0ve 1

不幸的是,您将无法访问此字段,因为“FindElements”方法以 IWebElement 的形式返回元素。IWebElement 没有实现获取您正在查找的 ID 值的方法。

如果 FindElements 方法要返回 RemoteWebElement 类型,甚至是 ChromeWebElement,我们将能够访问此字段,因为 RemoteWebElement 有一个方法可以访问它。但是,该方法并未在接口中实现。所以我们没有办法得到它。我尝试过选角,但没能选到正确的位置。所以到目前为止,我还没有找到获得此 ID 的方法。

有关更多信息,请参阅 RemoteWebElement.cs 源代码: https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteWebElement.cs

希望这对你有一点帮助