[英]Selenium webdriver with Python on chrome - Scroll to the exact middle of an element
我試圖僅通過使用 XPATH 獲取元素來單擊它。 我得到一個例外,即元素在給定位置不可點擊。
我確定元素的中心是可點擊的,那么我如何獲得元素的確切中間(x,y)並使用 Python 使用 Selenium 單擊它?
編輯:
我找到了解決這個問題的方法:
driver.execute_script("arguments[0].scrollIntoView(true);", element)
time.sleep(0.5)
element.click()
time.sleep 是缺失的環節。
實際上硒本身會嘗試單擊元素中心位置處的元素,因此,當目標元素由於窗口大小或其他任何原因(如將其隱藏在滾動條等內部)而被其他元素覆蓋時,通常會發生此異常。
因此,基本上,如果您想將確切的元素放入視口,則可以單擊它,則應嘗試使用scrollIntoView()
方法,該方法將當前元素滾動到瀏覽器窗口的可見區域,如下所示:-
element = driver.find_element..
driver.execute_script("arguments[0].scrollIntoView()", element)
以下解決方案對我有用, ( Python )
element = driver.find_element_by_xpath("//*[text()='Installer Package ']")
driver.execute_script("arguments[0].scrollIntoView(**{block: 'center', inline: 'nearest'}**)", element))
對於 JavaScript:
WebElement e = driver.findElement(By.name("txt"));
JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript ("arguments[0].scrollIntoView(**{block: 'center', inline: 'nearest'}**)", e);
{塊:'中心',內聯:'最近'}
以上是這里的主要參數,將元素完美定位在中間(注意:有時元素會位於底部,但不會完全呈現在屏幕中。因此無法執行點擊動作。但傳遞此參數將避免這些問題)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.