使用Selenium WebDriver处理Chrome滚动按钮及输入框自动化问题
解决Chrome自动生成滚动输入框的自动化操作问题
针对你遇到的Chrome原生带滚动按钮的输入框无法操作、输入值无效的问题,给你几个可靠的解决方案:
直接通过JS设置输入框值
这类原生输入框本质还是<input>元素,绕过交互控件直接修改DOM属性是最稳定的方式:// 定位到目标输入框 IWebElement inputBox = driver.FindElement(By.CssSelector("input[type='number']")); // 用JS执行赋值 IJavaScriptExecutor js = (IJavaScriptExecutor)driver; js.ExecuteScript("arguments[0].value = '目标数值';", inputBox);模拟键盘按键调整数值
如果需要通过"滚动"逻辑调整数值,用方向键模拟比操作滚动按钮更靠谱:inputBox.Click(); // 先聚焦输入框 // 按↑键5次(向上调整数值) for (int i = 0; i < 5; i++) { new Actions(driver).SendKeys(Keys.ArrowUp).Perform(); } // 也可以直接输入具体数值 new Actions(driver).SendKeys("100").Perform();修复输入框内部滚动无效的问题
你之前用的ScrollByAmount是操作页面全局滚动,对输入框内部滚动无效,要针对输入框元素修改scrollTop:js.ExecuteScript("arguments[0].scrollTop = arguments[0].scrollTop - 100;", inputBox);
内容的提问来源于stack exchange,提问作者Sachith
相关产品推荐
相关产品推荐

