[英]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.