【问题标题】:sendKeys is NOT working for input text box with SLIDER, but it works for CLEAR the input field ( selenium java )sendKeys 不适用于带有 SLIDER 的输入文本框,但它适用于 CLEAR 输入字段(selenium java)
【发布时间】:2020-07-16 03:03:04
【问题描述】:

请帮帮我,我必须在抵押金额输入字段中输入。实际上,输入文本字段与滑块相关联。但我适用于清除输入字段,不适用于 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>

【问题讨论】:

  • 是否显示异常?
  • 其实也不例外。它获取设置的默认值。所以它会移动到下一行而不会失败。
  • 您可以在清除和发送密钥之间使用具有预期条件的显式等待吗?
  • 是的,我用过,没有任何线索

标签: java html selenium slider input-field


【解决方案1】:

如果你不能'SendKeys',试试'SetValue':

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

【讨论】:

  • 不,我已经尝试过了,它没有用。实际上,CLEAR 有效,SENDKEYS 无效。
  • 好的,所以尝试模拟用户操作:Clear();点击(); SendKeys();
【解决方案2】:

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

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

选项1代码sn-p

 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");

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多