相关疑难解决方法(0)

使用Selenium WebDriver从IWebElement获取所有属性

我想用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)

希望我错过了一些明显的东西.

提前致谢!

c# selenium selenium-webdriver

7
推荐指数
2
解决办法
3万
查看次数

如何通过除"class"和"name"之外的属性直接查找WebElements(例如"title")

我是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

3
推荐指数
1
解决办法
2万
查看次数