繁体   English   中英

sendKeys 不适用于带有 SLIDER 的输入文本框,但它适用于清除输入字段( selenium java )

[英]sendKeys is NOT working for input text box with SLIDER, but it works for CLEAR the input field ( selenium java )

请在这里帮助我,我必须在抵押金额输入字段中输入。 实际上,输入文本字段与 slider 相关联。 但我适用于清除输入字段,不适用于 SENDKEYS。 与 slider、SENDKEYS 无关的输入字段也可以正常工作。

例如,

@FindBy(xpath = "//*[contains(text(),'Mortgage Amount')]/following::input[@id='name'][1]")
public WebElement mortageAmountInput;

mortageAmountInput.clear();            -> It works for clearing the input text field

mortageAmountInput.sendKeys("300000");  -> It is not working for clearing the input text field

这是我面临这个问题的网页: https://www.coastcapitalsavings.com/calculators/mortgage-calculator

供您参考, https://calculator.coastcapitalsavings.com/ITSCredit.External/CCS/ITSCredit.CCS.UI.External/calculator/MT此页面在主页框架内 --> https://www.coastcapital .com/calculators/mortgage-calculator

下面是 HTML:

<div class="custom-slider" id="slider-container">
    <div class="row">
        <div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
            <span class="generic-title">Mortgage Amount</span>
            <!----><span class="info-tooltip ng-star-inserted" data-balloon="The total amount of the mortgage."></span>
        </div>
        <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4">
            <input onlynumber="true" id="name" type="text" class="ng-valid ng-dirty ng-touched">
        </div>
    </div>
    <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
            <div id="slider-distance" slider="">
                <div>
                    <div inverse="" style="width: 96.5966%;"></div>
                    <div range="" style="width: 3.4034%;"></div>
                    <div thumb="" style="left: 3.32039%;"></div>
                    <div sign="" style="left: 3.4034%;">
                        <span id="value">3.4034034034034035</span>
                    </div>
                </div>
                <input tabindex="0" type="range" min="10000" max="10000000" step="1" data-slider-id="sliderMortgageAmount" id="sliderMortgageAmount" data-tryxpath-element="0">
            </div>
        </div>
    </div>
</div>

如果您不能“SendKeys”,请尝试“SetValue”:

(JavascriptExecutor)driver.executeScript("arguments[0].value='300000';", mortageAmountInput);

我使用了 Action class 并且能够清除和更改值。 我希望你在任何行动之前切换框架。

 driver.switchTo().frame("ifrm_13536");

选项 1 代码片段

 Actions action = new Actions(driver); 
        action.moveToElement(mortageAmountInput).doubleClick()
        .sendKeys(Keys.DELETE)
        .sendKeys("5000")
        .build().perform();

选项 2-在我的情况下。清除 function 不起作用,而 sendkeys 是

 mortageAmountInput.sendKeys(Keys.BACK_SPACE);    
 mortageAmountInput.sendKeys(Keys.BACK_SPACE); 
 mortageAmountInput.sendKeys("5000");

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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