【发布时间】:2018-09-18 23:34:48
【问题描述】:
我有一个支付页面,我在其中输入我的卡详细信息并点击“支付”按钮。但是,当我将 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();
【问题讨论】:
-
你试过用javascript点击元素吗?
标签: javascript node.js selenium-webdriver callback promise