首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java代码中使用chromedriver执行JS命令?

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

Stack Overflow用户
提问于 2019-02-06 06:13:03
回答 2查看 1.4K关注 0票数 2

我想问您如何使用JS命令滚动到网页中。不过,我希望这个JS命令位于Java代码块中。出于上述目的,让我告诉您,我也使用Selenium框架。有可能吗?

其目的是通过使用Selenium和Java来做到这一点。我不关心JavascriptExecutor的一般用法。我想要他们的组合为滚动功能!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-06 07:31:17

我想详细回答所有可能的滚动选项,因为它没有在问题中确定。下面我给你们一个实用的,理论的答案。第一个是完成你的工作,第二个是阅读关于未来使用的理论,因为关于这个主题有很多选择。

代码示例:

代码语言:javascript
复制
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

理论文档:

例如,我认为有关这个主题的正式文档包含在下一个链接中:这里用于滚动窗口,选项用于滚动,这里用于滚动元素选项。我相信其他来源也有更多的文件。我只是向你介绍我从中获取信息的消息来源。

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

票数 1
EN

Stack Overflow用户

发布于 2019-02-06 06:25:19

如果我正确地理解了您的意思,那么您正在尝试在selenium代码中滚动页面。你可以试试这样的东西。

代码语言:javascript
复制
WebDriver driver = new ChromeDriver();

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

让我们知道这对你是如何运作的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54547618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档