0

请在这里帮助我,我必须在抵押金额输入字段中输入。实际上,输入文本字段与滑块相关联。但我适用于清除输入字段,不适用于 SENDKEYS。此外,与滑块无关的输入字段 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.coastcapitalsavings .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>
4

2 回答 2

0

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

(JavascriptExecutor)driver.executeScript("arguments[0].value='300000';", mortageAmountInput);
于 2020-07-16T04:50:55.370 回答
0

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

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

选项 1 代码片段

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

选项 2-在我的情况下 .clear 功能不起作用,而 sendkeys 是

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

在此处输入图像描述

于 2020-07-17T02:22:49.983 回答