我正在尝试自动化一个网页,我必须输入信用卡详细信息。 在手动输入信用卡的CVV期间,我可以向前移动,但在使用sendkeys输入值时会抛出错误。
driver.findElement(By.name("password_ccCvv")).click();
driver.findElement(By.name("password_ccCvv")).sendKeys("999");
我尝试点击文本框,然后输入值。这也行不通。
通过发送密钥输入值时,我无法看到正在发送的值,因为它已加密。
答案 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次尝试进行身份验证。