一,在做自动化测试时候,显示等待封装一下定位元素的方法:
def find_element(self, *loc): try: WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(*loc)) return self.driver.find_element(*loc) except Exception as e: raise e
二、脚本执行提示:
意思就是,传入了三个参数,但是只有两个位置;
*loc 代表的是有三个参数:self,xpath和路径地址
login_password_loc = (By.XPATH, "//input[@type='password']")
*parameter是用来接受任意多个参数并将其放在一个元组中;
所以,函数在调用多个参数时,在列表、元组、集合、字典及其他可迭代对象作为实参,并在前面加 *
如 *(1,2,3)解释器将自动进行解包然后传递给多个单变量参数(参数个数要对应相等)
修改为:
def find_element(self, *loc): try: WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(loc)) return self.driver.find_element(*loc) except Exception as e: raise e
解决问题。