我正在使用Selenium framework 2.0 Web驱动程序,我想从具有诸如data-automation-id之类的属性的跨度中获取价值。HTML代码如下
<span data-automation-id="SEL_ERR">
Error Description
</span>
现在,我要读取span属性中将data-automation-id属性设置为SEL_ERR的文本。
有人可以帮助我修复代码吗,因为我已经尝试过下面的代码,但是徒劳。
driver.findElement(By.tagName("span")).getAttribute("data-automation-id");
确实很简单。目前你所得到的非常 第一 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']"));
要么:
3)对2)的修改。如果Selenium无法找到它,它将抛出异常。例外情况代价高昂。您可以.findElements
改用(在1中提到)),如果找不到所需的元素,它将仅返回一个空列表:
driver.findElements(By.cssSelector("span[data-automation-id='SEL-ERR']")).size() != 0;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句