Selenium之Canvas畫布操作

2022-06-13 18:18:12 字數 661 閱讀 4113

現在有乙個場景是需要進入到 canvas畫布中 進行單擊操作,現在使用過如下方法

canvas = driver.find_element_by_xpath("//canvas[@id='#canvas']")

actions.move_to_element(canvas).move_by_offset(600, 270).click().release().perform()

報錯如下

selenium.common.exceptions.staleelementreferenceexception: message: stale element reference: element is not attached to the page document

經過改寫後,可以正常執行
actionchains(driver).move_to_element(canvas).move_by_offset(85,27).pause(2).click().perform()

確還是沒有搞懂為什麼 action = actionchains(),在用action 去執行別的步驟就會出錯;個人理解可能是之前action 在別的介面執行過操作,把前後不同的滑鼠操作當成了乙個場景裡的不同操作,而介面變化後,導致場景找不到,才報錯提示。

canvas之滑鼠事件

canvas的滑鼠事件無法直接獲取滑鼠在canvas上的座標,所獲得的座標是相對於整個螢幕的座標,所以,想得到滑鼠在canvas上的座標時,就必須進行轉換。使用getboundingclientrect方法,得到canvas在螢幕上的位置及大小資訊 clientrect bottom 486 hei...

canvas入門之畫線

在hmtl 中建立好canvas之後,就可以在js裡面對canvas進行操作了 var canvas document.getelementbyid canvas var context canvas.getcontext 2d 獲取繪圖上下文環境 canvas.width 500 設定畫布寬高 c...

Silverlight學習之 Canvas物件

首先canvas為silverlight提供的乙個布局元素之一。每個子物件都呈現在canvas區域中。通過指定x和y座標,可以控制物件在canvas中的定位。這些座標以為象素為單位。x和y座標通常使用canvas.left和canvas.top的附加屬性來指定。canvas.left 指定物件與包含...