记录我定位了2天的bug,坚持下去,问题终究会解决。

在这里插入图片描述
背景:执行用例过程中,报错“str” has no attribute ‘findele’,
解决办法:
(1)先是调用click()方法报错,报错:“str” has no attribute ‘findele’,
(2)试了2天,各种方法无数次,最后定位到了findele这块的问题,>>>单独调测这个方法。后来还是报错,灵机一动,我删掉了方法中的所以桑眼的东东,如下:
def findele(self, *args):
return self.driver.find_element(*args)
就剩了个这,然后就不报这个错了,终于解决了,我真是醉了,至于为什么添加异常判断后报错,继续定位。
(2)接下来又报错:“str” has no attribute “driver”
然后,发现调用方法返回的return self.driver.find_element(*args)其中的driver是无效的,发现方法无法识别findele,想让它识别怎么办,首先肯定要继承这个方法的类,继承后,我们实例调用self.findele,成功通过。内心是澎湃的
在这里插入图片描述

(3)接下来继续click(),发现继续报错:selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: ‘using’ must be a string。意思是我们使用的必须是一个字符串
(4)将click()里面的变量换成*args问题解决:
# 对元素click
def click(self, *args):
return self.findele(args).click()
(5)今天调用sendkey()方法,报错:提示我定义了2个变量,但是输入了3个变量,解决办法:
将前两个变量换为元组。注意输入2个变量,方法中的变量是
args,例如:
def sendkey(self, args, value):
self.findele(*args).send_keys(value)
调用:send_key((By.Id,“kw”),‘jiao’),前面2个变量是一个元组哦

猜你喜欢

转载自blog.csdn.net/weixin_45451320/article/details/112854261