gpt4 book ai didi

java - 无法访问 Selenium 中的元素(缩放和滚动不起作用)

转载 作者:行者123 更新时间:2023-12-02 13:18:32 24 4
gpt4 key购买 nike

我运行 selenium 的网站有一些组件从屏幕上掉下来。我尝试向下滚动到它,缩小页面以使其适合等等。它是一个 div 模态,包含一个我需要按下的按钮。

这是我之前的尝试:

1) 滚动到该位置第一个问题是,每当我尝试滚动、使用代码或在窗口中使用我自己的鼠标时,所发生的只是模式后面的页面会滚动,而不是模式本身滚动。这仅在运行 Selenium 时发生。因此,下面的代码不起作用。

JavascriptExecutor js = ((JavascriptExecutor)driver);
js.executeScript("window.scrollTo(0," + driver.findElement(By.xpath("//*[@id=\"manual-order-modal-ignore-validation\"]")).getLocation().x + ")");

它实际上会滚动,但正如我上面所说,必要的元素永远不会出现在屏幕上。

2)缩小#1

我尝试使用 Javascript 缩小完成该工作的页面,但它显然抛弃了我的 Selenium 驱动程序,因为它试图单击按钮的原始位置,但无法在那里找到它。

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.body.style.zoom='80%'");

同样,我也尝试使用下面的解决方案,但它也不起作用。

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.body.style.transform='scale(0.8)'");

3)缩小#2

我尝试发送多个击键,但我得到的唯一结果是一条错误消息“无法聚焦元素”

WebElement html = driver.findElement(By.tagName("html"));
html.sendKeys(Keys.chord(Keys.COMMAND, Keys.SUBTRACT));

4)缩小#3

我尝试使用机器人类,但它根本不滚动,它只是坐在那里。

for (int i=0; i< 6; i++)
{
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_MINUS);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_MINUS);
System.out.println("zoom out")
}

打印“缩小”,但不执行任何操作。

如您所见,我查找并尝试了许多解决方案,但均无济于事。如果您对如何解决这个问题有任何想法,我们将不胜感激!预先感谢您。

最佳答案

我们也可以使用 Sikuli 进行滚动。它有 3 个滚动功能,这些可能会对您有所帮助:

screen.wheel(direction, steps);
screen.wheel(target, direction, steps);
screen.wheel(target, direction, steps, stepDelay);

示例:

import org.sikuli.script.Button; 
button = new Button();
screen.wheel(RegionForScroll, button.WHEEL_UP, 5);

关于java - 无法访问 Selenium 中的元素(缩放和滚动不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670200/

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