selenium元素定位踩的坑

 想定位立即注册的元素,在定位时总报错找不到元素:

先想了是不是这个弹框在ifarm里所以定位不到,所以用了:driver.switch_to.farme(driver.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[3]/a"))

最后试了会不会是元素没加载出来,所以用了隐形等待implicitly_wait(),解决了问题

心得:一定要看上下级关系,是否在ifarm,DOM树是写的很明白

(二)在做selenium自动化的时候,在输入元组参数时少加个*,导致一直报错,在作为参数时一定要加*

报错代码:

def FindElement(self,*loc):
#注意,以下入参为元祖的元素,需要加*
try:
ele=WebDriverWait(self.driver,self.outtime,0.5).until(EC.presence_of_element_located(loc))
return ele
except Exception as e:
print("未找到元素,错误为{0}".format(e))

 正确代码:

def FindElement(self,*loc):
#注意,以下入参为元祖的元素,需要加*
try:
ele=WebDriverWait(self.driver,self.outtime,0.5).until(EC.presence_of_element_located(*loc))
return ele
except Exception as e:
print("未找到元素,错误为{0}".format(e))
原文地址:https://www.cnblogs.com/zhifeiji822/p/13085710.html