如何用单语句实现Selenium先输入文本再执行Ctrl/回车操作?
解决方案
没问题,这个需求其实很容易实现,WebDriver的sendKeys()方法本身就支持按顺序执行多个操作,完全可以用单语句搞定:
场景1:输入“10”后按下回车键
直接在sendKeys()里按顺序传入文本和回车按键即可:
WebElement department = driver.findElement(By.xpath("//input[@class='txtdepartment txtenter_event']")); department.sendKeys("10", Keys.ENTER);
场景2:输入“10”后执行Ctrl+A全选操作
同样用Keys.chord()组合快捷键,和文本一起按顺序传入:
WebElement department = driver.findElement(By.xpath("//input[@class='txtdepartment txtenter_event']")); department.sendKeys("10", Keys.chord(Keys.CONTROL, "a"));
原理说明
sendKeys()方法支持传入多个CharSequence类型的参数,它会严格按照你传入的顺序依次执行每个操作:先输入第一个参数的文本内容,再执行后续的按键指令。这样既满足了你“先输入文本,再执行按键”的要求,又用单语句完成了操作,不需要重复定位同一个元素。
内容的提问来源于stack exchange,提问作者user10555367
相关产品推荐
相关产品推荐

