真的看到我想檢查用戶是否可以看到當前Web瀏覽器中的某個元素而無需滾動。檢查元素是否給用戶
什麼我發現可以檢查元素是否是某個頁面上的。
另一個提示建議檢查元素的位置,但後來我需要得到瀏覽器加上可視窗口的X/Y的偏移0/0尺寸。
我將不勝感激,如果有人可以指向我並不需要JavaScript代碼的解決方案。
真的看到我想檢查用戶是否可以看到當前Web瀏覽器中的某個元素而無需滾動。檢查元素是否給用戶
什麼我發現可以檢查元素是否是某個頁面上的。
另一個提示建議檢查元素的位置,但後來我需要得到瀏覽器加上可視窗口的X/Y的偏移0/0尺寸。
我將不勝感激,如果有人可以指向我並不需要JavaScript代碼的解決方案。
你如何定義「用戶可見」?你打算如何檢查它? 如果它有一個高度?如果它沒有被CSS隱藏?如果它的父元素被CSS隱藏了呢?
最可靠的方法是使用Selenium內建的.Displayed
屬性(如果您使用的是C#,Java有類似),並將其與jQuery的「可見」選擇器相結合:http://api.jquery.com/visible-selector/。下面的例子,在C#中。
var element = Driver.FindElement(By.Id("test"));
bool isVisible = element.Displayed;
var javascriptCapableDriver = (IJavascriptExecutor)Driver;
bool jQueryBelivesElementIsVisible = javascriptCapableDriver.ExecuteScript("return $('#myElement').is(:visible);");
bool elementIsVisible = isVisible && jQueryBelievesElementIsVisible;
這會得到大多數情況。
這也不是沒有可能客戶端代碼,或在別人找到一個方式,它可以在服務器端語言來完成的準備,我很懷疑這將是非常,可讀或可靠。
jQuery的有offset()
方法:
然而,這將不考慮邊框,邊距,那種東西的時候工作。
不幸的是,沒有JavaScript沒有辦法。無論如何,你爲什麼不想要那個?從[這裏](http://stackoverflow.com/questions/704758/how-to-check-if-an-element-is-really-visible-with-javascript)有什麼幫助嗎? –
@Slanec例如,我有其中由於一些差CSS,需要被點擊的按鈕被定位,例如,在視口的110%的寬度的一個錯誤,並且溢出被設置爲隱藏。所以這個按鈕永遠不會是clickbale,而不是滾動或調整大小或任何東西。順便說一下,這隻發生在IE11中。所以現在我想要一個測試用例來驗證該按鈕是否可見,以添加到產品的迴歸中。不幸的是,isDisplayed()對於該元素是真實的。 – dmansfield
我正在使用Css,Z-index檢查元素的可見性。我是否可以檢查元素的可見性,在另一個元素的背層中。 – bcrajkumar