无目标类型错误是因为定位到的标签是空的,所以会返回一个None 例如
error_message_tag = find_element_by_css(self.browser, '#error-message').get_attribute('innerText')
error_message_tag = find_element_by_css(self.browser, '#error-message')
if error_message_tag is None:
user_name_text = find_element_by_css(self.browser, '#XMLAb').get_attribute('innerText')
if user_name_text == self.user_name:
return True
else:
raise Exception('用户错误')
else:
error_message = error_message_tag.get_attribute('innerText')
if error_message == '验证码错误':
raise Captcha.InvalidCaptchaException('验证码或用户名错误')
else:
raise Exception(f"登入发生异常 {error_message}")
#内涵二次封装方法,谨慎复制
代码中是做一个登陆验证。如果登陆页面的error标签有值就说明登陆错误,如果登陆成功是None 是空,直接获取调用的话就会报错。所以把取文本值的操作放在循环里进行操作。
一个登陆验证小方法,如果定位不到error标签 就是登陆到主页啦。
还有一个登陆验证思路是判断url是否跳转
或者 判断主页的用户名位置是否是自己想要的值 ,万变不离其宗 思路最重要
|