我正在寻找一种解决方案,只获取网页上显示的网页元素。 例如,对于网页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完成吗?
非常感谢你的帮助。