硒将Web元素隐藏在导航栏后面

时间:2019-04-22 18:22:07

标签: java firefox selenium-webdriver

我在将值写入输入元素时遇到问题。 a busy cat 当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 ver,FireFox 66 ver。

1 个答案:

答案 0 :(得分:0)

此代码解决了我的问题

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