【问题标题】:Selenium webdriver - Iterate, find webelement and then click on it - how can I do that?Selenium webdriver - 迭代,找到 webelement 然后点击它 - 我该怎么做?
【发布时间】:2020-04-20 20:58:03
【问题描述】:

我想找到具有可见文本“7000118777”的网络元素,但是我不知道如何在列表中准确找到它然后单击它。

当我迭代时,它显示索引为 -1,我得到“productList.get(-1);”的错误- 这不是正确的。

public void findProductAndAddToCart(String product) {

        List<WebElement> productList = SeleniumDriver.getDriver().findElements(By.className("bcom--txtBold"));

        for (WebElement webElement : productList) {
            String elements = (webElement.getAttribute("innerHTML"));
            int indexOfProduct = elements.indexOf("7000118777");

            System.out.println("Indeks produktu "+indexOfProduct);
        }
        productList.get(-1);

【问题讨论】:

  • 请提供 DOM 或你的 url ?

标签: java selenium selenium-webdriver automated-tests functional-testing


【解决方案1】:

由于您没有提供指向 url 的链接或 html 的屏幕截图,因此我从您的问题中了解到,您希望单击列表中可见文本为“7000118777”的元素。我也相信你找到了正确的元素,即你的产品列表。请参考以下代码(将 myDriver 替换为您的 WebDriver):

 List<WebElement> productList = myDriver.findElements(By.className("bcom--txtBold"));
        for (int i=0; i< productList.size();i++) {
            String element=productList.get(i).getText();
            if(element.equals("7000118777"))
            {
                productList.get(i).click();
            } 

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2018-01-02
    • 2018-01-16
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多