Selenium - 能够获得所呈现的Webelements列表&显示在网页中

时间:2017-08-11 01:51:41

标签: javascript html css selenium

我正在寻找一种解决方案,只获取网页上显示的网页元素。 例如,对于网页https://login.yahoo.com/,只有少数网页元素呈现给浏览器(1个输入框,7个链接,1个按钮等)

当我尝试仅获取这些Web元素时,我得到的只是我的集合中的大量Web元素。

例如,我在查询HTML

时获取了选择的Web元素
<select type="select" name="countryCodeIntl" aria-required="true" role="combobox" aria-multiline="false" aria-labelledby="country-code-lbl-aria" disabled="">
    <option role="option" data-code="+93" value="AF">Afghanistan ‪(+93)‬</option>       
</select>

此选择元素在网页中不可用。不确定如何在查询DOM时忽略此Web元素

我尝试了以下方法

 1. Displayed==true ( Selenium funcitonality )

 2. IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
            Boolean elementVisible = (Boolean)js.ExecuteScript("return arguments[0].offsetWidth > 0", myCurElement);
            Boolean elementVisible1 = (Boolean)js.ExecuteScript("return arguments[0].offsetHeight > 0", myCurElement);
            Boolean elementVisible2 = (Boolean)js.ExecuteScript("return arguments[0].getClientRects().length > 0", myCurElement);
            if (elementVisible ==true&& elementVisible1== true && elementVisible2 == true)
            {}

上述两种方法都返回在网页中不可见的元素。

有关如何仅获取浏览器中人眼可见的HTML webelements的任何指示?可以使用javascript完成吗?

非常感谢你的帮助。

0 个答案:

没有答案