0

更新:: 我尝试使用 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: &quot;Klarna Text&quot;, &quot;Klarna Sans&quot;, 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:即使我尝试在下拉后的输入框中输入,也是一样的。我有同样的验证错误。

4

0 回答 0