【问题标题】:Selenium objects out of the screen屏幕外的硒对象
【发布时间】:2016-04-19 07:40:31
【问题描述】:

我目前有一个硒测试,可以在 1920 * 1080 分辨率下流畅运行。 但我有一个任务是在不同的常见分辨率上进行这个测试,比如 1366 *768。

问题是当我在小于 1920 * 1080 的分辨率上运行 Selenium 测试时,我找不到窗口下方的某些元素(如预期的那样) 我该如何解决?

我试过了 JavascriptExecutor jse = (JavascriptExecutor)驱动程序; jse.executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");

滚动到页面底部但没有成功。 将不胜感激帮助负载。 使用 java、Selenium、TestNG 和 POM。

【问题讨论】:

  • 你的意思是使用 javascript 执行器你不能滚动
  • 是的,我就是这个意思!
  • 请看我提供的答案,它会帮助你
  • 另外,您在问题中的最后一行是“滚动到页面底部但没有成功。希望加载帮助。使用 java、Selenium、TestNG 和 POM。”第一部分是根据问题,但第二部分是我认为另一个问题,如果是,那么请为此创建一个单独的问题,因为它会误导原始问题谢谢

标签: selenium selenium-webdriver automated-tests


【解决方案1】:

你好滚动请使用如下所示

滚动到页面底部

driver.navigate().to(URL);
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0, document.body.scrollHeight)");

滚动到页面上的元素

driver.navigate().to(URL);
WebElement element = driver.findElement(By.id("id"));
((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();", element);

按坐标滚动

 driver.navigate().to(URL);
 ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)");

【讨论】:

  • 非常感谢!还有一个问题,我目前正在为其编写测试的网站在屏幕上有 3 个不同的滚动部分。我如何决定它将使用哪个“滚动”?感谢所有帮助!
  • 很高兴它对您有所帮助。使用滚动到页面上的元素 - 这最终会让它变得清晰
【解决方案2】:

要滚动页面底部,请使用以下代码:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0,300)", "");

js.executeScript("scroll(0, 300);");

js.executeScript("window.scrollTo(0, document.body.scrollHeight)"); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多