簡體   English   中英

Selenium webdriver with Python on chrome - 滾動到元素的確切中間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM