更新:: 我尝试使用 sendKeys() 我在文本框中单独输入了一些奇怪的 5 或 66。附图。
sendKeys("2001 年 2 月 11 日(中欧夏令时间)"); 发送密钥(“2001-02-23”)
sendkeys("2011-02-23") 上带有 66.* 值的文本框的屏幕截图
出生日期输入元素(如附图所示)已正确填写。但是,在移动到下一个控件时,DOB 字段的值要么被隐藏,要么被屏蔽。然后单击继续按钮,将引发验证错误。我附上了屏幕录制中这三个步骤的屏幕截图。下面是我试图访问 iframe 内的控件的 selenium 方法。在这方面的任何帮助将不胜感激。
public void confirmsPaymentWithKlarnaInvoice(){
klarnaInstantBuyButton.waitUntilEnabled().click();
switchToIFrame();
WebDriver driver = getDriver();
WebElement selectElem = driver.findElement(By.id("invoice_kp-purchase-approval-form-user-title"));
WebElement selectOpt = selectElem.findElements(By.tagName("option")).get(1);
selectElem.click();
selectOpt.click();
if(driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("arguments[0].value='23.01.2012'", klarnaInvoiceDOB);
}
klarnaInvoiceKpContinueButton.click();
klarnaInstantCheckoutSuccess.shouldBeVisible();
}
@FindBy(id="invoice_kp-purchase-approval-form-date-of-birth")
private WebElementFacade klarnaInvoiceDOB;
内框内的输入元素如下,
<input id="invoice_kp-purchase-approval-form-date-of-birth" name="dateOfBirth" type="tel" mask="DD.DD.DDDD" placeholder="" maxlength="10" size="10" style="background-color: transparent; border: none; box-sizing: border-box; outline: none; box-shadow: none; caret-color: rgb(72, 123, 148); color: rgb(23, 23, 23); -webkit-text-fill-color: rgb(23, 23, 23); opacity: 1; font-family: "Klarna Text", "Klarna Sans", Helvetica, Arial, sans-serif; font-weight: 500; font-size: 16px; height: 60px; overflow: hidden; padding-left: 0px; padding-top: 18px; position: absolute; text-overflow: ellipsis; top: 0px; margin-left: -1px; margin-top: 2px; white-space: nowrap; width: 100%; -webkit-font-smoothing: antialiased; text-rendering: geometricprecision;"/>
PS:即使我尝试在下拉后的输入框中输入,也是一样的。我有同样的验证错误。