当前位置: 首页 > 知识库问答 >
问题:

在list-Selenium中查找和单击元素

巫马庆
2023-03-14

我一直在忙着自动化这个选项页面,因为它提供了各种选项,每个选项都有自己的子选项,所以我不想花时间通过它们的xpath(或CSS)标识和声明所有元素。因此,我有一个可靠的代码,可以很好地找到HTML标记中的文本标识符。

public void selectAnOption(String option) {
        List<WebElement> choice = driver.findElements(By.xpath("//div[@class='atcui-scrollPanel-wrapper']/ul/li"));
        for(WebElement e : choice){
            System.out.println(e.getText());
            if(e.getText().equals(option)){
                e.click();
                break;
            }
        }
    }

通过运行这个,我得到一个打印输出,就像

>

  • 里程数

    等等。所以嘣!我知道它们已经被识别,但我的e.click()实际上并没有点击。当我开始测试时,我没有得到任何错误,它只是说它通过了,但按钮实际上从来没有被点击过。下面是我正在使用的HTML段,您可以看到它是如何嵌套的。

  • 共有1个答案

    夹谷信鸿
    2023-03-14

    对于Java8及以上版本,您可以使用:

    public void selectAnOption(String option) {
            List<WebElement> choice = driver.findElements(By.xpath("your_xpath"));
            choice
                 .stream()
                 .filter(e->e.getText().equals(option))
                 .findFirst().get().click();
        }
    
     类似资料:
    • 问题内容: 我正在寻找网站。在检查元素中看到以下内容: 需要获取并按标题单击元素。像这样: 但是通过标题。 问题答案: 就像巴拉克·马诺斯(Barak Manos)所说,答案是: 以[0]结尾的情况是列表。

    • 我搞不懂这个。 我在这个网站上工作,我使用Python中的selenium来单击类名“yellow showPopupUnder”下的第一个元素(屏幕的主要部分有20行关于房屋的黄色信息)。 当我让Selenium点击该行后,它会打开并显示更多信息。我对有“选中”和“未选中”框的部分感兴趣。这些复选框位于这样的div中: 未选中的框位于一个div中,如下所示: 我试着用几种方法联系他们: 我还尝试

    • 问题内容: 我正在尝试访问中存在的元素。 你能帮助我访问这些与Selenium Webdriver和JAVA一起使用的“元素”吗? 遇到问题:可以到达目标页面(存在上述元素),但是我的代码无法识别这些元素。 XML结构概述: 代码提取: 如果需要更多详细信息,请告诉我! 问题答案: 在尝试在iframe中搜索元素之前,你必须将Selenium焦点切换到iframe。 在iframe中搜索元素之前,

    • 我是的新手,需要检查元素是否可以在中单击,因为在和上都传递。 我尝试使用以下代码,但不起作用:

    • 我正在为我的Rails代码库编写一个测试套件,并试图使用Capybara单击一个搜索图标,检查搜索字段是否出现。然而,由于Capybara找不到CSS元素“search\u icon”,测试一直失败。我试过使用和

    • 问题内容: 我正在尝试使用Selenium(版本2.28.0)在子元素中搜索元素,但是selenium des似乎并不将其搜索限制在子元素中。我做错了吗,还是有一种方法可以使用element.find搜索子元素? 例如,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我运行: 它从第二部分返回html。因此,selenium的搜索范围并不限于element