1

我正在使用 Selenium 加载网页。我需要检测页面是否水平溢出。不幸driver.FindElement(By.TagName("html")).Size.Width的是,总是返回浏览器宽度,即使实际的 HTML 元素溢出。

检查是否存在水平滚动条会起作用。反正有没有检查?

还有其他想法吗?

赞赏 C# 代码示例。

谢谢,

4

3 回答 3

1

这有效,不需要 jQuery。

bool isOver = (bool)js.ExecuteScript("javascript: return document.getElementsByTagName(\"html\")[0].scrollWidth > document.getElementsByTagName(\"html\")[0].clientWidth");

于 2013-09-20T17:00:16.853 回答
1

作为 MrTi 答案的更新,您可以使用此 C# 代码:

 var js = (IJavaScriptExecutor)webDriver;
 var isOverflowing = js.ExecuteScript("$('body').width() >= $(window).width()");

如果窗口溢出,则返回布尔值

于 2013-09-20T06:24:51.490 回答
1

我不知道C#,但它的本质是在页面上执行以下JQuery:

$("body").width() >= $(window).width()

并将其转换为布尔值;

于 2013-09-20T02:37:58.370 回答