在网页上滚动一个div,而无需滚动Selenium Webdriver中的主页



如何使用Selenium Webdriver在Firefox上处理嵌套的滚动条?我试图自动化的功能是,在向下滚动整个帧时,下一个按钮将启用。我尝试了JavaScript执行程序,但它滚动了主页,而不是在Div内部。我还使用动作尝试了一下,请参阅下面的代码:

WebElement snapshot_list = driver.findElement(By.id("snapshots-list"));
Actions scrolldown = new Actions(driver);
scrolldown.moveToElement(snapshot_list).build().perform();
snapshot_list.click();
scrolldown.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();

这不会导致任何错误,测试柜显示为测试中的传递,但它只是跳过scrolldown.keydown零件。我究竟做错了什么?任何帮助都将不胜感激。

以下代码对我有用滚动div -

WebElement eleAssistanceInput = driver.findElement(By.id("abc"));
//the above element will be visible after scrolling down the div.                       
                        ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", eleAssistanceInput);
                        eleAssistanceInput.click();

您已经提到了您尝试了JavaScript遗嘱执行人,但是不知道您尝试了什么。如果您已经在下面尝试过,请忽略它们。

(((JavascriptExecutor)driver)).executeScript("document.getElementById('snapshots-list').scrollIntoView({ 
  behavior: 'smooth' 
});");

(((JavascriptExecutor)driver)).executeScript("document.getElementById('snapshots-list').scrollIntoView(true);");

(((JavascriptExecutor)driver)).executeScript("jQuery("snapshots-list").mouseover();");

或如下提到的元素后立即单击

WebElement snapshot_list = driver.findElement(By.id("snapshots-list"));
Actions scrolldown = new Actions(driver);
scrolldown.moveToElement(snapshot_list).click().build().perform();

解决问题!我通过动作实现了这一目标,我将一个元素集中在框架上,并在一段时间内添加了以下条件:

Actions action = new Actions(driver);
action.moveToElement(FirstSnapshot).build().perform();
FirstSnapshot.click();
while(Nextbutton.isEnabled()== false)
        {
        action.keyDown(Keys.CONTROL).sendKeys(Keys.DOWN).perform();
        }
System.out.println("Button is enabled");

相关内容

  • 没有找到相关文章