Из-за некоторых вещей, которые я делаю с моей автоматизацией, я пытаюсь сохранить числа в виде целых чисел, текст в виде строковых типов и т. Д. c. WebDriver не «посылает ключи», когда они целые, поэтому я сделал это, используя javascript. Первым, что я сделал, было поле последних 4 цифр кредитной карты, и я успешно справился с этой строкой кода:
jse.executeScript("document.getElementById('PaymentInfo_CCLast4Digits').setAttribute('value', '" + lastFour + "')");
Как вы можете видеть, с помощью инструментов разработчика и Во-первых, все так, как и должно быть.
Теперь у меня также есть поле, называемое Количество. Вот код jse для этого:
jse.executeScript("document.getElementById('Quantity').setAttribute('value', '" + productQuantity + "')");
И вот что происходит:
Теперь, как вы можете видеть, значение равно 324, но оно не будет отображаться в поле количества. НО, если я изменю тип переменной на String и передам его через обычный веб-драйвер:
driver.findElement(By.id("Quantity")).sendKeys(productQuantity);
, тогда он будет вести себя как ожидалось:
Кто-нибудь знает, почему это произойдет? Вот различия, которые я вижу в последнем поле 4 из CC, где он работает с jse, и в поле «Количество», где его нет:
1) Поле «Последнее 4 CC» имеет тип = текст "где поле Количество равно" тип = число "
2) Поле Количество имеет те маленькие стрелки вверх и вниз, предположительно потому, что оно имеет тип = число
Что-то еще, что я пропустил? Кто-нибудь еще достаточно разбирается в этом, чтобы понять, почему 324 не отображается в поле «Количество», когда я отправляю его с помощью jse, несмотря на то, что инструменты разработчика показывают, что значение действительно равно 324, и оно отображается, когда я отправляю его через Вебдрайвер как строка?
Спасибо большое!
Скотт