Python Selenium javascript错误:不支持形状=矩形

2024-06-14 17:06:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python selenium自动下载财务报告。要实现此目的,我必须使用此虚拟键盘插入密码:

enter image description here

我正在尝试通过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元素如下所示,例如对于letther'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


Tags: 目的元素密码objectdriverselenium字母area
1条回答
网友
1楼 · 发布于 2024-06-14 17:06:12

在这个问题上你有一条捷径

在元素中,您有:

onclick="writeAlpha('F')"

单击以运行javascript函数writeAlpha('F')。您可以直接运行该函数,而不必担心键盘或XPath

从devtools控制台运行它如下所示:

Devtool Keypress

在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+"')")

其结果如下:

final keys to virtual keyobard

相关问题 更多 >