Java Selenium将web元素隐藏在导航栏后面

Java Selenium将web元素隐藏在导航栏后面,java,firefox,selenium-webdriver,Java,Firefox,Selenium Webdriver,我在将值写入输入元素时遇到问题。 当Selenium调用此输入字段时,页面滚动到顶部,输入隐藏在导航栏后面 在上诉之前,我执行以下代码: int elementPosition = element.getLocation().getY(); String js = String.format("window.scroll(0, %s)", elementPosition-90); ((JavascriptExecutor)driver).executeScript(js); 但即使在我的滚动之

我在将值写入输入元素时遇到问题。 当Selenium调用此输入字段时,页面滚动到顶部,输入隐藏在导航栏后面

在上诉之前,我执行以下代码:

int elementPosition = element.getLocation().getY();
String js = String.format("window.scroll(0, %s)", elementPosition-90);
((JavascriptExecutor)driver).executeScript(js);
但即使在我的滚动之后,输入仍然是隐藏的

此外,我还尝试通过JavaScript为该字段设置一个值:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('value', '"+date+"')",element);
不幸的是,这也无济于事


环境:Selenium 3.6.0版本,FireFox 66版本。

这段代码解决了我的问题

Actions actions = new Actions(driver);
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false); arguments[0].focus();", element);
actions.sendKeys(date).perform();

这个代码解决了我的问题

Actions actions = new Actions(driver);
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false); arguments[0].focus();", element);
actions.sendKeys(date).perform();

你是说当你点击输入框后屏幕会滚动吗?如果不使用自动化,这是如何工作的?这听起来像是一个问题。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想干什么?@DebanjanB这不是X-Y问题。他解释了实际问题是什么(用图片)以及他做了什么来解决它。我想知道你的定位器是否定位错了元素?也许这就是为什么它看起来一直在向下滚动?您可以共享该页面的URL吗?@JeffC URL-locator for input field-
//div[contains(@data item id,'dateCollected')]///design item date picker//input
您是说点击输入字段后屏幕会滚动吗?如果不使用自动化,这是如何工作的?这听起来像是一个问题。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想干什么?@DebanjanB这不是X-Y问题。他解释了实际问题是什么(用图片)以及他做了什么来解决它。我想知道你的定位器是否定位错了元素?也许这就是为什么它看起来一直在向下滚动?您可以共享该页面的URL吗?@JeffC URL-locator for input field-
//div[contains(@data item id,'dateCollected')]//设计项日期选择器//输入