gpt4 book ai didi

c# - 如何使用 Selenium WebDriver 滚动到元素

转载 作者:IT王子 更新时间:2023-10-29 04:36:08 25 4
gpt4 key购买 nike

如何让 Selenium WebDriver 滚动到特定元素以将其显示在屏幕上。我尝试了很多不同的选择,但没有运气。这在 C# 绑定(bind)中不起作用吗?

我可以让它跳到一个特定的位置ex

((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 150)");

但我希望能够将它发送到不同的元素,而不必每次都给出确切的位置。

public IWebElement Example { get { return Driver.FindElement(By.Id("123456")); } }

例 1)

((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);", Example);

例 2)

((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollBy(Example.Location.X", "Example.Location.Y - 100)");

我看的时候没有跳到页面下的元素,异常匹配元素不在屏幕上。

我在它后面添加了一个 bool ex = Example.Exists(); 并检查了结果。它确实存在(它是真的)。它没有显示(因为它还没有移动到元素,所以它仍然在屏幕外)未选中 ??????

有人看到了 By.ClassName 的成功。有谁知道在 C# 绑定(bind)中执行此 By.Id 是否有问题?

最佳答案

这是一个比较老的问题,但我相信有比上面建议的更好的解决方案。

这是原始答案:https://stackoverflow.com/a/26461431/1221512

您应该使用 Actions 类来执行滚动到元素。

var element = driver.FindElement(By.id("element-id"));
Actions actions = new Actions(driver);
actions.MoveToElement(element);
actions.Perform();

关于c# - 如何使用 Selenium WebDriver 滚动到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473710/

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