经过一天的挖掘,我找到了答案。
要使用
onfocusJavascript 在文本字段中输入文本,我需要
click()使用文本字段webelement:
driver.findElement(By.id("my_budget")).click();这有效-输入值后执行Javascript。
为了使输入文本和生成事件更容易一些,我创建了一个方法:
调用此:
sendKeysWithEvent(driver, driver.findElement(By.id("my_budget")), "50000", "onfocus");方法:
public static void sendKeysWithEvent(WebDriver driver, WebElement element, String text, String event) throws Exception { element.sendKeys(text); switch(event) { case "keyup": new Actions(driver).keyDown(element, Keys.CONTROL).keyUp(element, Keys.CONTROL).perform(); break; case "onblurJS": doJavascriptonElement(driver, element, element.getAttribute("onblur")); break; case "onfocus": element.click(); break; case "keyupJS": doJavascriptonElement(driver, element, element.getAttribute("onkeyup")); break; case "keyupTAB": element.sendKeys(Keys.TAB); break; }}public static void doJavascriptonElement(WebDriver driver, WebElement element, String javascript) throws Exception { ApiHelper.doLog("Running Javascript: " + javascript); ((JavascriptExecutor) driver).executescript(javascript, element);}


