【发布时间】:2020-11-05 21:22:55
【问题描述】:
我有这两个 Selenium/Java 调用:
List<WebElement> aList = driver.findElements(By.xpath("//something"));
List<WebElement> bList = driver.findElements(By.xpath("//something"));
在第一个示例中,XPath 指向元素内容(例如,<b>element content</b>)并用一堆字符串填充 aList。
对于bList,我想在找到的节点上使用getAttribute("alt")(返回HTML标签中的alt属性的字符串值)并将结果字符串保存在bList中,但该方法不是如果我这样做,则可用/适用:
List<WebElement> bList = driver.findElements(By.xpath("//somethingElse")).getAttribute("alt"); //doesn't work
这是为什么呢?我真的需要吗
bList.get(1).getAttribute("alt");
?也就是说,逐个访问每个返回的元素并在它们上调用getAttribute。如果我能在一行中完成所有这些事情会更好,就像我为 aList 所做的那样。
澄清一下:
- 这主要是一道 Java 语法问题。
- 外观示例。我有几个与
something-XPath 匹配的html 元素,看起来像这样<b alt="EN">some text</b>.我希望some text进入aList(这有效),而EN应该进入bList。我该如何写,bList-case,作为 oneliner?
【问题讨论】:
标签: java selenium selenium-webdriver syntax operator-precedence