在Selenium Java中等待sendkeys
我正在使用Java、Selenium和chrome实现测试自动化。 我想输入一个文本,等待它显示,然后单击选项卡,我想避免在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
线程。睡眠
因此,我使用以下代码:
WebElement societe = wait.until(ExpectedConditions.elementToBeClickable(By.id("AutoComplInputBoxfld_XSociete")));
societe.sendKeys("Text");
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
societe.sendKeys(Keys.TAB);
但它会将字段留空并转到下一个元素
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秒的睡眠时间。循环将在一段时间内忽略某些异常。(就像显式等待一样,除非没有测试预期条件…)它是驱动程序会话的全局设置。