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
Selenium sendkeys输入的文本错误_Selenium_Selenium Webdriver_Webdriver_Sendkeys - Fatal编程技术网

Selenium sendkeys输入的文本错误

Selenium sendkeys输入的文本错误,selenium,selenium-webdriver,webdriver,sendkeys,Selenium,Selenium Webdriver,Webdriver,Sendkeys,我正在尝试自动化一个网页,我必须输入信用卡的详细信息。 在手动输入信用卡的CVV时,我可以前进,但在使用sendkeys输入值时,它会抛出一个错误 driver.findElement(By.name("password_ccCvv")).click(); driver.findElement(By.name("password_ccCvv")).sendKeys("999"); 我试着点击文本框,然后输入值。这也没用 通过发送密钥输入值时,我看不到发送的是什么值,因为它是加密的。如果文本框中

我正在尝试自动化一个网页,我必须输入信用卡的详细信息。 在手动输入信用卡的CVV时,我可以前进,但在使用sendkeys输入值时,它会抛出一个错误

driver.findElement(By.name("password_ccCvv")).click();
driver.findElement(By.name("password_ccCvv")).sendKeys("999");
我试着点击文本框,然后输入值。这也没用


通过发送密钥输入值时,我看不到发送的是什么值,因为它是加密的。

如果文本框中已存在文本,请首先使用以下方法清除它:

driver.findElement(By.name("password_ccCvv")).clear();
driver.findElement(By.name("password_ccCvv")).sendKeys("999"); 
或者只试试这个

driver.findElement(By.name("password_ccCvv")).sendKeys("999"); 

使用javascriptexecuter试试这个,然后告诉我

用Python

driver.execute_script("document.getElementById('password_ccCvv').value = '001';");
在爪哇

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("document.getElementById('password_ccCvv').value = '001';");

如果Webdriver无法使用标准方式(使用sendKeys方法)输入数据,则可以使用JavaScriptExecuter进行解决,如下所示:

JavascriptExecutor e = (JavascriptExecutor)driver;
e.executeScript("arguments[0].setAttribute('value', arguments[1])", driver.findElement(By.name("password_ccCvv")), "999");
让我知道,它是否适合你

          while(driver.findElement(By.id("makePaymentButton")).isEnabled())
          {
          Thread.sleep(4000);
          driver.findElement(By.name("password_ccCvv")).sendKeys("999");
          Thread.sleep(4000);
          driver.findElement(By.id("makePaymentButton")).click();
          Thread.sleep(2000);
          }

这对我有用。我可以在第3次或第4次尝试中进行身份验证。

每次输入卡详细信息后,您是否可以尝试发送TAB key事件?IMO,
CVV
字段不以TAB分隔。Thanks@Abhinav尝试仍然不起作用。尝试了这两种方法。问题是正在输入值,当我单击“下一步”时,我得到一个错误,即CVV错误/不正确。HTML代码我正在使用Java,所以我尝试了第二种方法。我可以看到输入的值。但只要单击next(下一步);将显示错误消息。其中,当我手动输入相同的值时,不会显示任何错误消息。在我的代码中,它会尝试转到下一个元素。找不到id==CurrentAcctMailRadio的元素,而在FE“请输入有效的CVV”中,我不清楚您面临的错误是否更具描述性?确定。使用上面提供的代码之后。正在CVV文本框中输入值。之后,我必须单击下面的元素driver.findElement(By.id(“makePaymentButton”))。单击();因此,当执行此单击时,预期会转到下一个网页,但不会;t因为错误CVV不正确。您可以共享URL吗?我可以看到输入的值。但只要单击next(下一步);将显示错误消息。当我手动输入相同的值时,不会显示任何错误消息。