gpt4 book ai didi

java - 如何在 Selenium webdriver 中等待输入字段刷新

转载 作者:行者123 更新时间:2023-11-30 02:47:29 25 4
gpt4 key购买 nike

在我的 AUT 中,有两个字段 - 一个 'Product' 下拉列表和一个 'Amount' 输入字段。默认情况下,'Amount' 字段显示值 '0.0'。当用户从 'Product' 下拉列表中选择产品时,'Amount' 字段将自动填充所选产品的价格(如果数据库中已提供该价格),否则,'Amount' 字段显示 '0.0'。选择产品后,需要一段时间才能将金额加载到'Amount'字段。在自动填充之前和之后,我无法观察到 'Amount' 字段的属性值有任何变化。 'Amount' 字段的 html 为

<input id="id_expense_amt" class="form-control input" name="expense_amt" step="0.01" value="0" type="number">

问题是如何让网络驱动程序在选择产品后等待金额字段刷新。我使用了 Thread.sleep() ,它工作得很好。但还有其他方法可用吗?

最佳答案

使用 WebDriverWait 基本上有两种方法可以实现此场景,如下所示:-

WebDriverWait wait = new WebDriverWait(driver, 10); 
  • 如果您已经知道从 Product 下拉列表中选择一个选项后,Amount 文本字段中的默认金额将发生变化,那么您应该尝试使用ExpectedConditions.textToBePresentInElementValue它将等待指定元素值属性中出现给定数量,如下所示:-

    webDriverWait.until(ExpectedConditions.textToBePresentInElementValue(By.id("id_expense_amt"), "Amount which would be change"));
  • 如果您不知道从 Product 下拉列表中选择一个选项后,Amount 文本字段中的默认金额会发生什么变化,但您知道关于默认金额 0,那么您需要创建自定义 ExpectedConditions,它将等待金额从默认 0 更改为任何新金额,如下所示下面:-

    wait.until(new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver d) {
    WebElement el = d.findElement(By.id("id_expense_amt"));
    String value = el.getAttribute('value');
    if(value.length() != 0 && !value.equals("0")) {
    return true;
    }
    }
    });

关于java - 如何在 Selenium webdriver 中等待输入字段刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com