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

如何编写while循环,使其等待控件出现(Selenium)[duplicate]

荣声
2023-03-14

我想做一个while循环,这样我的测试会等到一个给定的控件出现,然后单击它或向它发送文本。这样我就可以摆脱额外的等待等,使测试更加防弹。不知道如何在java/selenium中编写代码。

任何例子都将不胜感激。提前谢谢。

    if (providerNo != null) {
        WebElement foo = driver.findElement(By.name("providerNumber"));
        foo.sendKeys(providerNo);
    }

共有1个答案

申屠弘图
2023-03-14

嗨请像下面这样做

WebElement element = (new WebDriverWait(driver, 30))
   .until(ExpectedConditions.elementToBeClickable(By.name("q")));
 类似资料:
  • 问题内容: 单击特定按钮时-我的测试站点将打开模式窗口。 但是模式窗口的打开是不同的 两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态。 是否可以等到任一模态窗口(WebElement)可见? 我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定WebElement可见或可单击为止。 我找不到更好的方法来等到任何一个都可见。 您能提出一种解决这种情况的方法吗?

  • 问题内容: 我正在尝试通过按键盘上的键来使while循环中断。我的代码是: 问题答案: 请勿使用循环获取输入,或。您真正想要的是一行输入,然后将其拆分为一个双打列表。因此,请使用,拆分并解析每个项目。像这样: 这忽略了任何形式的输入验证,但显示了一种通用方法。 这将起作用,因为一旦您单击“ enter”(输入),它将结束第一行,这意味着扫描程序可以越过进入代码的大部分。由于您再也不会尝试阅读任何内

  • 行,并且while循环保持无限运行。但现在代码做了我想做的,它停止并计算新用户输入的次数,只要输入错误(我在输入正确值之前输入了3、6、7个错误值,它每次都起作用)。 我的问题是,扫描器如何停止无限循环?扫描仪是否会导致计算机在继续操作之前等待用户输入,因此它会继续对其进行评估,而不是无限地打印出“对不起,这不是一个有效的输入...”?我只想确定我知道为什么它停止了。

  • 问题内容: 说你有这个代码 我的问题是,为什么您需要在此处进行while循环。 pthread_cond_wait* 不会只等到信号线程发出 cam_video_cond 信号吗?好的,我知道您可能会遇到以下情况:调用 pthread_cond_wait 时 cam- > status不等于 WAIT_DISPAY ,但是在那种情况下,您可以通过 if 条件检查它,而不是使用 while 。 *

  • 问题内容: 我正在使用bluebird,方法 getAll 和 update return promises。我如何说“等到两个承诺返回,然后更新currentProduct值”?我对JS很陌生… 问题答案: 如果可以使用/,这将很简单。 或者,如果您只能使用简单的承诺,则可以遍历所有产品,并将每个承诺置于最后一个循环中。这样,仅当前一个问题解决时,它才会前进到下一个问题(即使它将首先迭代整个循环

  • 问题内容: 因此,在JS工作了一段时间之后,我将回到Python的基础知识。我只是有些出乎我意料的事情。 我有以下代码: 然而,当我运行该脚本,或者输入或脚本只是不断循环和不来循环出来。 我很迷惑。 问题答案: 那是因为您的第二个条件只是一个string ,这始终是正确的。您需要添加到第二个条件: