Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Selenium Java中等待sendkeys_Java_Selenium_Webdriverwait - Fatal编程技术网

在Selenium Java中等待sendkeys

在Selenium Java中等待sendkeys,java,selenium,webdriverwait,Java,Selenium,Webdriverwait,我正在使用Java、Selenium和chrome实现测试自动化。 我想输入一个文本,等待它显示,然后单击选项卡,我想避免线程。睡眠 因此,我使用以下代码: WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete"))); societe.sendKeys("Text&quo

我正在使用Java、Selenium和chrome实现测试自动化。 我想输入一个文本,等待它显示,然后单击选项卡,我想避免
线程。睡眠
因此,我使用以下代码:

        WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete")));
        societe.sendKeys("Text");
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
        societe.sendKeys(Keys.TAB);
但它会将字段留空并转到下一个元素

  • 我怎样才能修好它
  • 有没有一种方法可以使用sendkeys之前的显式等待
  • 试试这个

    wait.until(ExpectedConditions.textToBePresentInElement(element,"Textexpected))
    
    参考文献

    你可以试试

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

    Ps使用设备忽略格式化

    您可以使用类似以下内容:

    WebElement societe=driver.findElement(按.tagName(“输入”));
    Wait Wait=新FluentWait(兴业银行);
    法国兴业银行sendKeys(“文本”);;
    等待.直到(webElement->{
    字符串值=webElement.getAttribute(“值”);
    返回“文本”。等于(值);
    });
    
    您需要将fluent wait配置为具有某些超时等功能。

    我会这样做:

    WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete")));
            societe.sendKeys("Text");
            while(!societe.getAttribute("value").equals("Text")) {//wait}
     societe.sendKeys(Keys.TAB);
    

    不要混合使用隐式和显式等待。(坚持等待。直到等待位…)我使用隐式等待等待文本显示,因此我可以单击TAB键Yes。。。不要那样做。您不应该混合使用隐式和显式等待。将为以后的所有驱动程序操作设置隐式等待。。。因此,它们可以并且将与显式等待冲突,显式等待使用相同类型的轮询机制并忽略…好的,我将删除它。谢谢你的解释很多人把它误认为是标准的等待(比如睡眠),但这是一个轮询循环。。。所以那里有很多1/2秒的睡眠时间。循环将在一段时间内忽略某些异常。(就像显式等待一样,除非没有测试预期条件…)它是驱动程序会话的全局设置。