我在网页上填写表格。提交按钮位于表单的底部,但它由popunder覆盖。当我尝试element.click()
时,它只会抛出一个错误:
System.InvalidOperationException
并说:
元素在点(570,793)处无法点击。其他元素会收到点击:
<html of popunder element>
我可以以某种方式向下滚动来查看它,但必须有一些其他方法。我已经尝试将浏览器窗口高度设置为一个大数字,但这不起作用。
答案 0 :(得分:1)
您可以为任何IWebElements创建一个Adjust扩展方法,将其滚动到窗口的中心,如:
public static IWebElement Adjust(this IWebElement element)
{
var windowHeight = Convert.ToInt32(((IJavaScriptExecutor)driver).ExecuteScript("return window.innerHeight;"));
var scrollPage = element.Location.Y - windowHeight/2;
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, " + scrollPage + ")");
return element;
}
要使用,您需要在Click方法之前调用调整():
driver.FindElement(By.CssSelector("your-selector")).Adjust().Click();
答案 1 :(得分:0)
我最后向下滚动,但这仅在已知按钮位于固定坐标时才有效,因此这不是最佳答案。但是,这是一个答案,所以我将发布代码。
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, 700)");