gpt4 book ai didi

javascript - Selenium Java 滚动条部分

转载 作者:行者123 更新时间:2023-12-03 06:26:24 25 4
gpt4 key购买 nike

我尝试使用java中的selenium webdriver将滚动条向右移动,以便专注于一个元素来获取屏幕截图,但是在尝试了我所知道的一切之后,我无法得到它。

场景如图1所示: sorry for deleting data due to privacy issues

如您所见,滚动位于蓝色矩形的元素中,

我已经尝试过这个:

     JavascriptExecutor js;
js = (JavascriptExecutor) driver;
js.executeScript("$(\"#Pagination\").animate({ scrollLeft: \"-50000px\" })");

分页是div id。

你们能帮我吗?

最诚挚的问候。

最佳答案

使用“OpenQA.Selenium.Interactions.Actions”移动到元素。它应该自动获取元素的位置 x, y 并滚动到它。

// Initialize instance
Actions action = new Actions(webdriver);

// Find element to focus inside iframe
WebElement we = webdriver.findElement("<find element you wish to focus>");

// Perform move action
action.moveToElement(we).build().perform();

尚未测试,希望这会有所帮助。

更新:

您有两个非常相似的 ID -“#Pagination”和“#Paginacion”。这真是令人困惑。
另外,您应该考虑向包含数据的行添加类,例如 data-row

注意:确保您正确找到该元素。当您显示表格数据时,该元素将是表格单元格,而不是表格本身。

1) 在 Java 代码中,您将脚本存储到字符串变量中:

String script = "return $('#Paginacion').find('.data-row').eq(%1$d - 1).find('td').eq(%2$d - 1)";

2) 然后轻松将 rowNumbercolumnNumber 传递给 executeScript 方法。
    注意:还应该添加 null 检查。

int rowNumber = 1;
int columnNumber = 19;

List<WebElement> webElements = (List<WebElement>)js.executeScript(String.format(script, rowNumber, columnNumber));

3) 当找到元素时,只需调用 moveToElement 方法

action.moveToElement((WebElement) webElements.get(0)).build().perform();

经过测试,有效。

关于javascript - Selenium Java 滚动条部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38632931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com