Использование implicitly_wait
и WebDriverWait
может привести к непредсказуемому поведению.
Вы устанавливаете WebDriverWait
в качестве времени ожидания 0, но driver.find_element_by_xpath
использует implicitly_wait
время ожидания.Поиск элемента будет выполнен до этого времени ожидания.
На самом деле, presence_of_element_located()
должен получить By
в качестве параметра, а не WebElement
.Правильное использование:
WebDriverWait(driver, 0).until(ec.presence_of_element_located((By.XPATH, "//*[@id='tsf']/div[2]/div/div[3]/center/input[1]")))
Но применима та же причина, он будет искать элемент внутри.
В качестве примечания, implicitly_wait
не повлияет на driver.get()
, используйтеdriver.set_page_load_timeout()
.