繁体   English   中英

无法按下带有 selenium python 的现象级简单按钮

[英]Can't press a phenomenical easy button with selenium python

我需要一些帮助才能按下此按钮。 在此页面中,选择器无法跟踪“cersa”按钮。

https://www.consiglionazionaleforense.it/ricerca-avvocati

我还使用了 JS 代码,它在控制台中可以工作,但在 python 脚本中它会崩溃:

selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties of undefined (reading 'click')

js脚本:

    js_code = "button = document.getElementsByClassName('btn-link btn-link--green mt-4'); button[0].click();"
    driver.execute_script(js_code)

这应该工作

   driver.execute_script("document.getElementsByClassName('btn-link btn-link--green mt-4').click()")

我不确定你为什么打算用execute_script来 go ,但如果你可以用 go 直接 selenium ,那么你可以使用这个:

driver.find_element(By.XPATH, "//div[@id='ricerca-avvocati']//button[@type='submit']").click()

更新:

我对为什么即使在 DOM 中找到该元素也无法单击按钮的问题进行了敏锐的测试。

问题是,该元素根本不可点击,除非您点击I am not a robot复选框,如果通过自动化(或机器人)点击它可能不起作用(因为网站检测到机器人动作)。 尝试单击reCaptcha I am not a robot复选框,如果您没有被检测为机器人,则该元素将变为可单击并且操作将被执行。

我使用了常规点击 function - 我给你的第二个代码块,它有效,但我必须手动强制点击 reCaptcha 复选框 - 只有这样它才有效。 如您所见,代码以 0 代码退出,这意味着没有错误。 但需要注意的是 reCaptcha 处理,这对于 bot/selenium 来说是相当困难的

Process finished with exit code 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM