繁体   English   中英

在使用node.js在Selenium Web驱动程序中输入数据后5秒,如何单击按钮发布

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM