我想用Selenium从DOM中提取一些信息.我正在使用C#WebDriver.
查看IWebElement接口,您可以轻松提取给定属性.但是,我想提取一个元素的所有属性,而不必事先知道它们的名字.
必须有一些简单的方法来执行此操作,因为如果您知道其名称,则有一种获取属性值的方法.
一个例子:
<button id="myButton" ng-click="blabla()" ng-show="showMyButton"
some-other-attribute="foo.bar" />
IWebElement element = driver.FindElement(By.Id("myButton"));
Dictionary<string, string> attributes = new Dictionary<string, string>();
// ???????
// Profit.
Run Code Online (Sandbox Code Playgroud)
希望我错过了一些明显的东西.
提前致谢!
我是Java和Selenium的新手,所以如果我的问题听起来有些重要,我会提前道歉.
我用:
driverChrome.findElements(By.className("blabla"));
Run Code Online (Sandbox Code Playgroud)
查找具有"blabla"作为其className的元素,例如:
<span class="blabla" title="the title">...</span>
Run Code Online (Sandbox Code Playgroud)
现在,如果我想通过其他属性查找所有元素,该怎么办?就像是:
driverChrome.findElements(By.titleValue("the title"));
Run Code Online (Sandbox Code Playgroud)
这是我目前用来执行此任务的代码:
List<WebElement> spans = driverChrome.findElements(By.tagName("span"));
for (WebElement we : spans) {
if (we.getAttribute("title") != null) {
if (we.getAttribute("title").equals("the title")) {
...
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它并不快速且易于使用.
java testing selenium selenium-chromedriver selenium-webdriver