如何在Java代码中使用我的chromedriver执行JS命令?

时间:2019-02-06 06:13:03

标签: javascript java automated-tests selenium-chromedriver

我想问你如何使用JS命令滚动到网页中。不过,我希望此JS命令位于Java代码块内。为此,我告诉您我也使用Selenium框架。有可能吗?

目的是通过使用Selenium和Java来实现。我不在乎JavascriptExecutor的一般用法。我希望它们的组合具有 SCROLL 功能!

2 个答案:

答案 0 :(得分:2)

如果我对您的理解正确,那么您正在尝试在硒代码中滚动页面。您可以尝试这样的事情。

WebDriver driver = new ChromeDriver();

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels

让我们知道它如何为您工作。

答案 1 :(得分:0)

就我而言,我想以详细信息回答所有可能的滚动选项,因为问题中没有确定。因此,我在下面为您提供一个实用且理论上的答案。第一个完成您的工作,第二个阅读您的理论以备将来使用,因为有关此主题的选择很多。

代码示例:

import org.openqa.selenium.JavascriptExecutor; // packet that you need to import

WebDriver driver = new ChromeDriver(); // driver creation

JavascriptExecutor js = (JavascriptExecutor) driver; // giving to your driver the possibility to execute JS commands

js.executeScript("window.scrollBy(2000,1000)", ""); // scroll 2000 for x-coord and 1000 for y-coord
js.executeScript("window.scrollByPages(4)", ""); // scroll down the document by 4 pages
js.executeScript("window.scrollByPages(-4)", ""); // scroll up the document by 4 pages
js.executeScript("window.scrollByLines(10)", ""); // scroll down the document by 10 lines

WebElement toScrollElement = driver.findElement(By.XPATH_OR_ID_OR_OTHER("GIVEN_XPATH_OR_ID_OR_OTHER")); // locate the element you want to scroll into
js.executeScript("arguments[0].scrollIntoView(true);", toScrollElement); // scroll until the given element

理论文档:

我相信下一个链接中包含有关此主题的官方文档:here用于使用 Window 选项滚动,而here用于使用滚动元素选项。我敢肯定,也存在其他来源的更多文档。我只是向您介绍我从中获取信息的来源。

此外,JavascriptExecutor还有第二个选项,即js.executeAsyncScript();。您还可以从here阅读JavascriptExecutor本身的文档。

希望我能帮上忙! 如果还有其他有关滚动选项的信息,我将很高兴看到它。