如何使用Geb控制点击项目?

Ian*_*kan 5 java groovy webdriver geb

我正在使用Geb自动测试使用ExtJS来呈现其大部分UI的Web应用程序.我处于这样一种情况,我需要按住Ctrl键单击几个表示"类别"的ExtJS生成的表格单元格.如何使用Geb按住Ctrl键单击这些东西?

Ian*_*kan 3

要进行控制单击,我必须使用firstElement直接访问WebDriver WebElement对象:

def categoryItem = $("div.category-item-title", text: categoryName).firstElement()
Run Code Online (Sandbox Code Playgroud)

然后 Actions 对象可用于添加 Control 单击操作:

Actions actions = new Actions(driver)
actions = actions.keyDown(Keys.CONTROL)
actions = actions.click(categoryItem)
actions = actions.keyUp(Keys.CONTROL)
actions.perform()
Run Code Online (Sandbox Code Playgroud)

请注意,此代码位于页面对象的实例方法内。

这是使用 erdi 提到的“交互”机制的相同代码:

interact {
    keyDown(Keys.CONTROL)
    click($("div.category-item-title", text: categoryName))
    keyUp(Keys.CONTROL)
}
Run Code Online (Sandbox Code Playgroud)