繁体   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