[英]Redirect to a JS file after entering data into mongodb using node.js
[英]How to click a button post 5 seconds after entering data in selenium web driver using node.js
我有一个付款页面,我可以在其中输入卡的详细信息,然后单击“付款”按钮。 但是,当我将selenium Web驱动程序与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();
要么我不推荐Thread.sleep(5000),要么在单击“付款”按钮之前尝试从卡详细信息文本框中获取值,然后检查是否不为空,然后单击“付款”按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.