java - 如何循环浏览 WebElement 列表并选择一个具有条件的 WebElement?

标签 java selenium-webdriver

我正在使用 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/

相关文章:

java - 无法使用 xpath/css 遍历选择标题/菜单下拉项

selenium - 如何使用 selenium 更改 IE 上的浏览​​器模式?

angularjs - 无法启动 ChromeDriver-Protractor

javascript - Selenium - 计算具有匹配类的元素数

java - 如何处理GXT 2.2网格中单元格的点击?

java - 如何从 Firefox 中的 Web 开发人员工具栏下载 'generated source'

java - 如何使用Java监听某个端口?

java - 在json文件中将图像转换为Base64问题

java - 如何在 solr schema.xml 中创建一个新的 FieldType

ruby-on-rails - 我在尝试运行 cucumber 测试时遇到错误,该测试使用 selenium-webdriver 操作确认对话框