是否可以使用CMD +单击元素A +单击元素B

时间:2019-05-28 04:38:46

标签: katalon-studio katalon-recorder

我无法使用Katalon记录器单击带有CMD密钥的元素。可以在按下CMD键的同时单击两个不同的项目吗?

我尝试使用sendKeys,controlKeyDown,keyDown命令执行此操作,然后在第一个元素上调用Click Command,然后在第二个元素上调用Click Command。但是什么也没发生。

此外,如果我们可以使用CLICK元素A然后CMD + CLICK元素B进行模拟,那么对我来说就可以了。

1 个答案:

答案 0 :(得分:0)

在Katalon Studio(而非录音机)中,切换到脚本模式:

enter image description here

现在您可以用Groovy编写脚本了!

接下来,尝试使用Actions类,如下所示:

WebUI.openBrowser("url of the page you are testing")

WebDriver driver = DriverFactory.getWebDriver() 

WebElement targetA = driver.findElement(By.cssSelector("element-a-selector"))
WebElement targetB = driver.findElement(By.cssSelector("element-b-selector"))

targetA.click()
Actions actions = new Actions(driver)

actions.keyDown(Keys.CONTROL).click(targetB).keyUp(Keys.CONTROL).perform()

请注意,这是您的第二种情况,首先单击元素A(您需要添加css选择器,或使用其他任何方法来标识它),然后按住CTRL并单击元素B。

第一个(按下CTRL,单击元素a,单击元素b,释放CTRL)类似,只是将最后一行更改为:

actions.keyDown(Keys.CONTROL).click(targetA).click(targetB).keyUp(Keys.CONTROL).perform()

并删除targetA.click()

您将需要导入以下Selenium帮助程序类:

import org.openqa.selenium.By
import org.openqa.selenium.Keys
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement as WebElement 
import org.openqa.selenium.interactions.Actions