【发布时间】:2021-04-19 13:39:19
【问题描述】:
我正在尝试制作一个可以登录我的帐户的机器人。
在插入密码和用户名后,我让机器人使用此代码点击“我不是机器人重新验证码”并且它可以工作:
def _delay():
time.sleep(randint(1,3))
frames = driver.find_elements_by_tag_name('iframe')
driver.switch_to_frame(frames[0])
recaptcha = driver.find_element_by_xpath('//*[@id="recaptcha-anchor"]/div[1]')
driver.execute_script("arguments[0].click();",recaptcha)
_delay()
在此之后,它会打开图像重新验证。
现在,我想尝试使用音频转文本的方法,但我无法点击图片下方的“音频”按钮。这是我使用的代码:
#finding the frame
driver.switch_to_default_content()
element_image = driver.find_element_by_xpath('/html/body')
element = element_image.find_elements_by_tag_name('iframe')
driver.switch_to_frame(element[0])
_delay()
#clicking on the "audio" button
button = driver.find_element_by_id('recaptcha-audio-button') #error
driver.execute_script("arguments[0].click();",button)
这是输出:`发生异常:NoSuchElementException
我不知道如何点击“音频”按钮。这对我来说似乎是正确的,但仍然不起作用。 有小费吗 ? `
【问题讨论】:
-
_delay()是什么?您是否尝试插入等待以允许元素加载?如果是这样,那不是使用 Selenium 的正确方法。 -
是的,对不起,我忘了指定它。 _delay() 是我制作的一个等待 1 到 3 秒的函数。无论如何感谢您的回复:)
标签: python selenium recaptcha frame nosuchelementexception