如何使用Selenium WebDriver滚动到特定元素以在屏幕上显示。我尝试了很多不同的选项,但都没有成功。
这在C#绑定中不起作用吗?
我可以使其跳转到特定位置,例如
((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#绑定中使用By.Id是否有问题?
driver.FindElement(By.Id('id-of-ele')).Click()
不行吗? - Ray Cheng