У меня есть платежная страница, на которой я ввожу данные своей карты и нажимаю кнопку «Оплатить». Но когда я использую веб-драйвер селена с node.js, мою кнопку нажимают очень быстро даже до ввода данных, и я получаю обязательные проверки полей. Ниже приведен мой код. Я попробовал driver.sleep, но он не сработал. Как я могу ждать 2 или 3 секунды после ввода моих данных, прежде чем нажать кнопку. Пожалуйста, сообщите.
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('firefox')
.build();
//calling enterCardDetails function
enterCardDetails(driver);
//function to enter card details
function enterCardDetails(driver) {
driver.get('https://pp.eshapay.net/THREER/pages/paypage.jsf?transref=86ffeef6-0f2b-45bb-9dd6-a5e210dad1b6&store=100017');
driver.wait(
until.elementLocated(By.id('paymentDetailsTitle')),
20000
);
driver.findElement(By.id('cardholderName')).sendKeys('johny');
driver.findElement(By.id('cardNumber')).sendKeys('4444333322221111');
driver.wait(
until.elementLocated(By.id("expiryMonth")), 20000
).then(element => {
selectFromDropdown(element, "02")
});
//function to select value from dropdown
function selectFromDropdown(select, textDesired) {
select.findElements(By.tagName('option'))
.then(options => {
options.map(option => {
option.getText().then(text => {
if (text == textDesired)
option.click();
});
});
});
}
driver.wait(
until.elementLocated(By.id("expiryYear")), 20000
).then(element => {
selectFromDropdown(element, "2020")
});
driver.findElement(By.id('csc')).sendKeys('123');
}
//driver.findElement(By.id('btnSubmit')).click();