Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java和Selenium快速设置textarea中的文本_Java_Selenium - Fatal编程技术网

如何使用Java和Selenium快速设置textarea中的文本

如何使用Java和Selenium快速设置textarea中的文本,java,selenium,Java,Selenium,这段代码可以工作,但是sendKeys会一个接一个地发送所有的字符,而且非常长的时间是40秒 String value = "...very long text..."; WebElement element = ... element.sendKeys(value); 如何使用Java和Selenium快速设置textarea中的文本?要么使用硒元素,要么修改速度,要么逐个临时发送字符 请不要使用javascript执行解决方案。您可以直接使用js脚本设置值: JavascriptExe

这段代码可以工作,但是sendKeys会一个接一个地发送所有的字符,而且非常长的时间是40秒

String value = "...very long text...";
WebElement element = ...
element.sendKeys(value);
如何使用Java和Selenium快速设置textarea中的文本?要么使用硒元素,要么修改速度,要么逐个临时发送字符


请不要使用javascript执行解决方案。

您可以直接使用js脚本设置值:

  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("document.getElementById('textareaId').setAttribute('value', 'yourText')");

您可以使用js脚本直接设置该值:

  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("document.getElementById('textareaId').setAttribute('value', 'yourText')");
sendKeys方法是使用Selenium将文本输入文本字段的唯一纯Java方法。不幸的是,所有其他方法都需要JavaScript,这是您不想做的事情

你唯一的另一个选择是用你想要的行为来为by做贡献,并说服万维网联盟尽快加入这个新方法?在官方的WebDriver规范中:-确实不是一个小任务

sendKeys方法是使用Selenium将文本输入文本字段的唯一纯Java方法。不幸的是,所有其他方法都需要JavaScript,这是您不想做的事情

你唯一的另一个选择是用你想要的行为来为by做贡献,并说服万维网联盟尽快加入这个新方法?在官方的WebDriver规范中:-确实不是一个小任务

/!\小心,这只是一个解决办法

/!\第二种解决方法在远程计算机上不起作用:

/!\小心,这只是一个解决办法

/!\第二种解决方法在远程计算机上不起作用:


以下是使用剪贴板进行此操作的方法:

    String value = "...very long text...";      
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    Transferable transferable = new StringSelection(value);
    clipboard.setContents(transferable, null);  
    wait = new WebDriverWait(driver, ec_Timeout);     
    WebElement element  = wait.until(ExpectedConditions.presenceOfElementLocated(By.name("name_of_input_element")));
    String vKey = "v";

            try
            {
        element.sendKeys(Keys.CONTROL , vKey);    
            }
            catch (Exception ex)
            {

            }

以下是使用剪贴板进行此操作的方法:

    String value = "...very long text...";      
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    Transferable transferable = new StringSelection(value);
    clipboard.setContents(transferable, null);  
    wait = new WebDriverWait(driver, ec_Timeout);     
    WebElement element  = wait.until(ExpectedConditions.presenceOfElementLocated(By.name("name_of_input_element")));
    String vKey = "v";

            try
            {
        element.sendKeys(Keys.CONTROL , vKey);    
            }
            catch (Exception ex)
            {

            }


这回答了你的问题吗?和@Sers,您不阅读请不要使用javascript执行解决方案?没有任何配置可以更改以加快发送键的速度。为什么不使用JS,有什么限制吗?这是我的问题。我不会改变我的问题来坚持你的答案,这不是我的需要。没有人要求你改变你的问题。幸运的是这能回答你的问题吗?和@Sers,您不阅读请不要使用javascript执行解决方案?没有任何配置可以更改以加快发送键的速度。为什么不使用JS,有什么限制吗?这是我的问题。我不会改变我的问题来坚持你的答案,这不是我的需要。没有人要求你改变你的问题。好运气你不读请不要用javascript执行解决方案@sgrillon sendkeys是按顺序构建的,唯一快速的方法是使用js,因为selenium无法直接访问dom,实际上,所有dom操作都是通过js完成的。我的问题是如何通过配置减少每个发送键之间的时间?不通过javascript。我通过xpath找到我的元素,我不一定有idYou不阅读请不要使用javascript执行解决方案@sgrillon sendkeys是按顺序构建的,唯一快速的方法是使用js,因为selenium无法直接访问dom,实际上,所有dom操作都是通过js完成的。我的问题是如何通过配置减少每个发送键之间的时间?不,通过javascript。我通过xpath找到我的元素,我不一定要完成iddone。非常感谢。完成。非常感谢。您在问题中提到Javascript执行没有答案,但您只是使用JSE发布了您自己问题的答案。这应该是对您的问题的编辑吗?@Christine,我注意到,这只是一种解决方法。如果您有解决方案,我的问题仍然有效。@sgrillon我尝试了多个Javascript解决方案,但都无效。这很有魅力。感谢您的“小心,这是一个解决方案吗?”解决方案。您在问题中提到Javascript执行没有答案,但您只是使用JSE发布了您自己问题的答案。这应该是对您的问题的编辑吗?@Christine,我注意到,这只是一种解决方法。如果您有解决方案,我的问题仍然有效。@sgrillon我尝试了多个Javascript解决方案,但都无效。这很有魅力。感谢您的“小心,这是唯一的解决办法”解决方案。