我正在使用 Selenium WebDriver 和 Java。我正在尝试创建一个循环访问 WebElements 列表的方法,以返回包含文本“Ooga Booga”的第一个 WebElement,或者如果列表中没有包含此文本的元素,则返回 null。
public class myClass {
private static WebElement element = null;
private static List<WebElement> elements = null;
public static WebElement returnOneElement (WebDriver driver){
elements = driver.findElements(By.cssSelector("someSelector"));
for (WebElement element : elements){
String myText = element.findElement(By.cssSelector("classC")).getText();
if (myText.contains("Ooga Booga")) {
return element;
}
}
return null;
}
这一切都工作正常,直到我遇到一个没有此属性的元素:
String myText = element.findElement(By.cssSelector("classC")).getText();
如何继续循环遍历列表,同时忽略其中没有“someDiv”的任何元素?
<div class="someSelector">
<div class="classA">
<div class="classB">
</div>
<div class="someSelector">
<div class="classA">
<div class="classB">
<div class="classC">
</div>
我需要搜索 div“classC”内的文本。
最佳答案
使用 findElement-S 方法,如下所示。
for (WebElement element : elements) {
List<WebElement> mightHaveSomeDiv = element.findElements(By.cssSelector("someDiv"));
if (mightHaveSomeDiv.size() > 0) {
//Can iterate the list if you expect more than one div of type someDiv.
String myText = mightHaveSomeDiv.get(0).getText();
if (myText.contains("Ooga Booga")) {
return element;
}
}
}
关于java - 如何循环浏览 WebElement 列表并选择一个具有条件的 WebElement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735449/