我需要使用Selenium WebDriver(java)按住Ctrl +鼠標單擊鍵。我需要在腳本中選擇多個元素。 有什麼辦法可以做到嗎?使用java在Selenium WebDriver中按鍵(Ctrl +鼠標單擊)
我檢查了硒庫,發現硒只允許按下特殊鍵和功能鍵。
我需要使用Selenium WebDriver(java)按住Ctrl +鼠標單擊鍵。我需要在腳本中選擇多個元素。 有什麼辦法可以做到嗎?使用java在Selenium WebDriver中按鍵(Ctrl +鼠標單擊)
我檢查了硒庫,發現硒只允許按下特殊鍵和功能鍵。
您使用jQuery代碼
JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "e = jQuery.Event('click');e.ctrlKey = true; $('secondRow_Css_locator').trigger(e);";
js.executeScript(script);
實現相同或者你也可以使用機器人類,但是它可以鎖定屏幕一會兒在webdriver的
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
已經有寫庫操作,你可以使用。
簡要說明發生了什麼:
首先你按下控制按鈕,然後你點擊(在這種情況下)對你的定義WebElemen的對象3次),那麼你的unpressing控制並完成您的操作。
在這種情況下,您可以根據您的WebElements的內容來完成3項選擇(或打開3個新選項卡)。
Actions actions = new Actions(driver);
actions.keyDown(Keys.LEFT_CONTROL)
.click(first_WebElement)
.click(second_WebElement)
.click(third_WebElement)
.keyUp(Keys.LEFT_CONTROL)
.build()
.perform();
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).build().perform();
driver.findElement(By.xpath(".//*[@id='selectable']/li[1]")).click();
driver.findElement(By.xpath(".//*[@id='selectable']/li[3]")).click();
action.keyUp(Keys.CONTROL).build().perform();
那麼認爲文檔是撒謊?或者你真正的問題是什麼? – lenz
歡迎來到Stack Overflow!請閱讀指南[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask),尤其是關於最小,完整和可驗證示例(MCVE)的部分。這將幫助你爲自己解決問題。如果你這樣做,仍然卡住,你可以回來發佈你的MCVE,你試過的,以及結果是什麼,所以我們可以更好地幫助你。 – JeffC