如何在selenium webdriver中显示弹出窗口时阻止背景滚动?
场景:
打开一个弹出窗口,我必须对其执行一些操作/操作,但是如果我单击弹出窗口中的字段,页面会在后台滚动,我的弹出窗口向上滚动,对于任何交互都会变为selenium不可见
预期:
答案 0 :(得分:0)
您可以使用JavascriptExecutor
将字段滚动到视口中,然后在文本框中输入任何文本。请参阅下面的示例。
//After modal window is opened
WebElement txtBox = driver.findElement(By.css("input[type='text']")); //textBoxPresent in popup
txtBox.click(); //now the background will scroll to top.
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true)",txtBox); // this will scroll the textbox to the view port hence available for selenium to interact
txtBox.sendKeys("someText");
答案 1 :(得分:0)
有两种方法可以处理这种情况: -
overflow = hidden
,即可使用JavascriptExecutor
Exceptions
,这也可以实现使用{{ 1}}