簡體   English   中英

Python Selenium javascript 錯誤:不支持形狀=矩形

[英]Python Selenium javascript error: shape=rectangle is not supported

我正在使用 python selenium 來自動下載財務報告。 為此,我必須使用此虛擬鍵盤插入我的密碼:

在此處輸入圖像描述

我正在嘗試通過 xpath 單擊密碼的每個字母:

object = driver.find_element_by_xpath('//*[@id="alphaKeyboard"]/area[13]')
object.click()

XPath對每個字母都差不多,只是改變了*area[]*里面的數字

但我收到以下錯誤:

selenium.common.exceptions.JavascriptException: Message: javascript error: shape=rectangle is not supported

我想這個問題與包含虛擬鍵盤的 shape='rectangle' 元素有關,每個字母的完整 html 元素看起來像這樣,例如字母“F”:

<area shape="rectangle" coords=" 72, 22, 93, 44" onclick="writeAlpha('F')" onmouseover="setHandCursor(document.alphaKeyboard)" onmouseout="setDefaultCursor(document.alphaKeyboard)">

有什么建議嗎?

如果您想嘗試,我讓您使用 URL:

https://sucursalempresas.transaccionesbancolombia.com/SVE/control/BoleTransactional.bancolombia

在這方面有一個很大的捷徑。

在您的元素中,您有:

onclick="writeAlpha('F')"

單擊運行 javascript function writeAlpha('F') 您可以直接運行 function 而完全不必擔心鍵盤或 xpath。

從 devtools 控制台運行它看起來像這樣:

開發工具按鍵

在 python 中運行 javascript 如下:

driver.execute_script("writeAlpha('F')")

您只需要更新要發送的信件。


[更新] - 更進一步......

您可以將您的詳細信息創建為字符串,將其拆分並使用如下循環發送:

driver = webdriver.Chrome()
driver.get("https://sucursalempresas.transaccionesbancolombia.com/SVE/control/BoleTransactional.bancolombia")

myKeys = "HELLOWORLD"
myKeys = myKeys.split()

for key in myKeys:
    driver.execute_script("writeAlpha('"+key+"')")

輸出如下:

虛擬鍵盤的最終鍵

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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