Selenium selenium 获取隐藏元素值失败

Sutune · January 02, 2018 · Last by Sutune replied at January 02, 2018 · 2278 hits

问题描述

1.在页面 https://drfone.wondershare.com/clone.html 中输入邮箱点击submit会有3种结果:成功,失败、邮箱重复,需要根据输入邮箱后点击submit自动获取页面文字来进行判断发送结果。

2.输入正确的邮箱后页面显示如图所示发送成功文字,如下图所示:

3.使用代码获取页面文字始终为空


from selenium import webdriver

driver=webdriver.Firefox()
driver.get('https://drfone.wondershare.com/clone.html')

driver.find_element_by_id('email').send_keys('test@qq.com')
driver.find_element_by_css_selector('.btn_send').click()

# js = 'document.querySelector("dl").style.display="block";'
# driver.execute_script(js)

def send_email_isok():
text=driver.find_element_by_css_selector('dl.hint_txt.success.isok > dt').text
print(text)
if text == '':
print('send email not success')
return False

else:
print('send email is success')
return True

send_email_isok()

4.但是发送失败时的文字还是可以获取到的,不知是何原因导致。

共收到 4 条回复 时间 点赞

点击之后等待一段时间试试~selenium 找不到元素,先等待试试~

css_selector的写法换成'[class="hint_txt success isok"]',这样试一下

Sutune 关闭了讨论 02 Jan 16:29
Sutune 重新开启了讨论 02 Jan 16:29
白纸 回复

非常感谢提醒,我加了强制等待sleep(2)之后确实可以获取到了,估计是点击submit之后需要等待js响应显示元素。

木子李 回复

谢谢,这个其实和元素定位方式无关,是等待时间的问题。

Sutune 关闭了讨论 02 Jan 16:46
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up