![](/img/trans.png)
[英]javascript prototype chain: Rectangle.prototype = new Shape() or Rectangle.prototype = Shape?
[英]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.