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

在硒爪哇中发送键之前等待

尉迟正奇
2023-03-14

我正在使用Java、Selenium和chrome进行测试自动化。我想输入文本,等待它显示,然后单击TAB,我想避免thread.sleep,所以我使用以下代码:

        WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete")));
        societe.sendKeys("Text");
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
        societe.sendKeys(Keys.TAB);

但是它将字段留空并转到下一个元素

    < li >我如何修复它? < li >有没有办法在发送密钥之前使用显式等待?

共有3个答案

严宏旷
2023-03-14

试试这个

wait.until(ExpectedConditions.textToBePresentInElement(element,"Textexpected))

参考

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#textToBePresentInElement-org.openqa.selenium.WebElement-java.lang.String-

或者

你可以试试

wait.until(ExpectedConditions.textToBe(element,"Textexpected))

PS-忽略使用设备格式化

徐栋
2023-03-14

我会这样做:

WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete")));
        societe.sendKeys("Text");
        while(!societe.getAttribute("value").equals("Text")) {//wait}
 societe.sendKeys(Keys.TAB);
曹华荣
2023-03-14

你可以像这样使用:

WebElement societe = driver.findElement(By.tagName("input"));
Wait<WebElement> wait = new FluentWait<>(societe);
societe.sendKeys("Text");;
wait.until(webElement -> {
    String value = webElement.getAttribute("value");
    return "Text".equals(value);
});

您需要配置流畅的等待,以获得特定的超时,等等。

 类似资料:
  • 我的问题是关于cucumber特性文件的并行执行。在Selenium Java中,可以通过一个runner类并行运行多个cucumber特性文件吗? 我尝试过不同的方法,但都没有成功。

  • 问题内容: 我有这个Java代码段。我是Java的菜鸟。 错误: 码: 问题答案: 是的,这是问题所在: 在课程的最高级别,您只能拥有: 实例初始化程序块() 静态初始值设定块() 变量声明 构造函数声明 方法声明 嵌套类型声明 终结器声明 这些都不是。如果你 的意思 来声明一个变量,你应该这样做: 如果这 不是 您想要的,则应解释您的意图。 编辑:修复此问题后,此编译器错误似乎很明显: Conf

  • 我已经红色了多篇文章和讨论,但我仍然有一些不确定性:我不确定是否应该使用或任何其他类型来存储预订-在“在线预订”的意义上(因此来自不同国家/时区的参与者需要在时间线上的同一时刻会面)。我倾向于使用,因为DB和Backend设置为UTC,并且由于传入的“创建预订”json消息包含ISO 8601(带偏移量)start DateTime 让我们采用以下设置:1.数据库(UTC、Oracle、MSSQL

  • 当我运行程序而不是找到骑士之旅时,我收到了一个StackOverflow错误。任何想法是什么导致了这一点,以及我如何改变我的代码,实际上找到骑士之旅,并摆脱这个错误。项目是为我的CS280课程,并在周五到期,请帮助。谢谢!!

  • 一个能够让程序猿快速开发的炒鸡脚手架,核心技术Spring、JPA、Shiro。 基础环境 JDK1.8、Maven、Mysql、Redis、IntelliJ IDEA、minio、fastdfs 相关组件 - ok-admin - vue - iView - echarts - clipboard - cropperjs - lightbox - nprogress - webuploader

  • 我需要计算页面上的webElements。最初,它只打开几个元素,但是当你向下滚动时,会出现新元素。你不能使用ExpectedConditions.numberOfElementsToBeLessThan(),因为它不知道页面上会有多少元素。 要解决这个问题,我只需要让硒等待几秒钟,直到新的元素出现在DOM中。但是不允许使用线程睡眠。那么,我该如何解决这个问题?