python+selenium自动化,需要判断元素目前在可视区域内,查找资料都是js代码,嵌进去又不好用
js1 = “target = document.getElementByXpath(‘html/div’); clientRect = target.getBoundingClientRect(); return clientRect.top;”
elementHeight = self.driver.execute_script(js1)
js2 = “return document.documentElement.clientWidth;”
pageHeight= self.driver.execute_script(js2)
if elementHeith < pageHeigth:
则代表可见
elementHeight和pageHeight都返回的none type
_AD
(霍格沃兹_AD)
2
主要是看你找的这个元素的加载状态。我觉得如果你是指肉眼的可视范围。那可能最好还是截图。
因为滚动也是分情况的,比如滚动加载这种场景,那元素可以用是否能find到去做判断。
但是如果是页面元素已经全部加载出来了。滚动只起到动态的效果的话,那么用find 是不行的,是一定有的。只能用肉眼或者截图判断。
谢谢老师,最后用页面高度和元素高度判断是不是在可视区域了
js1 = "target = document.querySelector('.policy-details > div:nth-child(1) > div:nth-child(1) > p:nth-child(27) > a:nth-child(1) > span:nth-child(1)'); clientRect = target.getBoundingClientRect(); return clientRect.top;"
elementHeight = self.driver.execute_script(js1)
js2 = "return document.documentElement.clientWidth;"
pageHeight= self.driver.execute_script(js2)