Jav*_*ner 5 testing selenium automated-tests selenium-webdriver
我正在研究 Selenium 框架 2.0 Web 驱动程序,我想从具有 data-automation-id 等属性的范围中获取价值。HTML代码如下
<span data-automation-id="SEL_ERR">
Error Description
</span>
Run Code Online (Sandbox Code Playgroud)
现在我想用 in span 读取文本,该文本的属性data-automation-id设置为 SEL_ERR。
有人可以帮助我修复代码,因为我已经尝试过下面的代码但徒劳无功。
driver.findElement(By.tagName("span")).getAttribute("data-automation-id");
Run Code Online (Sandbox Code Playgroud)
很简单,真的。目前你所得到的非常 第一 span的整个文件内。
你怎么知道那是不是你想要的?
见面,.findElements()。它不会获取满足定位器的第一个元素,而是为您提供满足条件的每个元素的列表。
你没有分享很多 HTML,所以我不知道这是否是一个独特的元素。
但是,您有两种方法:
1)使用.findElements,以获得所有的span元素,然后筛选下来的元素特别有属性data-automation-id与值SEL_ERR
或(推荐):
2).findElement与专门针对 1) 中讨论的元素的选择器一起使用...如果 Selenium 找不到它,使用更有针对性的选择器,那么您就知道它不存在。
driver.findElement(By.cssSelector("span[data-automation-id='SEL-ERR']"));
Run Code Online (Sandbox Code Playgroud)
或者:
3) 对 2) 的修改。如果 Selenium 找不到它,它将抛出异常。例外是昂贵的。您可以.findElements改用(在 1 中提到)),如果找不到您要查找的元素,它将简单地返回一个空列表:
driver.findElements(By.cssSelector("span[data-automation-id='SEL-ERR']")).size() != 0;
Run Code Online (Sandbox Code Playgroud)