sendkeys

时间:2017-06-09 05:53:50

标签: selenium selenium-webdriver webdriver sendkeys

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

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

我尝试点击文本框,然后输入值。这也行不通。

通过发送密钥输入值时,我无法看到正在发送的值,因为它已加密。

4 个答案:

答案 0 :(得分:0)

如果在文本框中已有文本,请先使用以下内容清除它:

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

或者只尝试这个

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

答案 1 :(得分:0)

尝试使用javascriptexecuter并告诉我

在Python中

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

在Java中

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

答案 2 :(得分:0)

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

JavascriptExecutor e = (JavascriptExecutor)driver;
e.executeScript("arguments[0].setAttribute('value', arguments[1])", driver.findElement(By.name("password_ccCvv")), "999");

请告诉我,它是否适合您。

答案 3 :(得分:0)

          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次尝试进行身份验证。