我正在使用 Selenium 加载网页。我需要检测页面是否水平溢出。不幸driver.FindElement(By.TagName("html")).Size.Width
的是,总是返回浏览器宽度,即使实际的 HTML 元素溢出。
检查是否存在水平滚动条会起作用。反正有没有检查?
还有其他想法吗?
赞赏 C# 代码示例。
谢谢,
我正在使用 Selenium 加载网页。我需要检测页面是否水平溢出。不幸driver.FindElement(By.TagName("html")).Size.Width
的是,总是返回浏览器宽度,即使实际的 HTML 元素溢出。
检查是否存在水平滚动条会起作用。反正有没有检查?
还有其他想法吗?
赞赏 C# 代码示例。
谢谢,
这有效,不需要 jQuery。
bool isOver = (bool)js.ExecuteScript("javascript: return document.getElementsByTagName(\"html\")[0].scrollWidth > document.getElementsByTagName(\"html\")[0].clientWidth");
作为 MrTi 答案的更新,您可以使用此 C# 代码:
var js = (IJavaScriptExecutor)webDriver;
var isOverflowing = js.ExecuteScript("$('body').width() >= $(window).width()");
如果窗口溢出,则返回布尔值
我不知道C#,但它的本质是在页面上执行以下JQuery:
$("body").width() >= $(window).width()
并将其转换为布尔值;