Python Selenium中WebDriverWait失效但find_element_by_name可用是什么原因
WebDriverWait失效核心原因
EC.presence_of_element_located的入参格式不符合要求:
- Selenium 中
expected_conditions下的所有元素判断方法,都要求传入由定位方式、定位值组成的二元元组,而非两个独立参数。 - 你注释的代码直接将
By.NAME和"email"作为两个独立参数传入,不符合方法入参规则,因此会抛出参数异常。 - 未注释的
driver.find_element_by_name是专门的name定位快捷方法,仅需传入name属性值一个参数,因此可以正常执行。
修复后可正常运行的代码
try: search = WebDriverWait(driver, 20).until( # 额外加一层括号,把定位参数包装为元组 EC.presence_of_element_located((By.NAME, "email")) ) except: print("Did not find element with name 'email'")
内容的提问来源于stack exchange,提问作者Dave S
相关产品推荐
相关产品推荐

