红宝石 – 硒滚动元素进入(视图中心)
发布时间:2020-12-16 20:52:45 所属栏目:百科 来源:网络整理
导读:当一个元素与selenium不在视图中并且试图与它进行交互时,selenium通常会隐式地将元素滚动到视图中.这很棒,但令人讨厌的是它通常会将元素放入视图中.我的意思是,如果元素在窗口下方,它将向下滚动,直到元素刚好接近窗口边缘. 通常这很好,但是当在带有边框的网
当一个元素与selenium不在视图中并且试图与它进行交互时,selenium通常会隐式地将元素滚动到视图中.这很棒,但令人讨厌的是它通常会将元素放入视图中.我的意思是,如果元素在窗口下方,它将向下滚动,直到元素刚好接近窗口边缘.
通常这很好,但是当在带有边框的网站上工作时,这将导致许多这类错误 Selenium::WebDriver::Error::UnknownError: unknown error: Element is not clickable at point (438,747). Other element would receive the click: <body>...</body> 因为通常网页的边框位于其上方,但无论如何都会尝试单击该元素.无论如何处理这个?也许是在视线外时自动将元素移动到屏幕中心?我正在考虑通过红宝石修补猴子. 解决方法
这应该可以将元素滚动到视图中心:
WebElement element = driver.findElement(By.xxx("xxxx")); String scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight,window.innerHeight || 0);" + "var elementTop = arguments[0].getBoundingClientRect().top;" + "window.scrollBy(0,elementTop-(viewPortHeight/2));"; ((JavascriptExecutor) driver).executeScript(scrollElementIntoMiddle,element); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |