Время истекло, потому что элементы не могут быть найдены.Если вы посмотрите на html вручную, вы увидите, что идентификаторы отличаются от того, что вы используете.
Например, у вас есть:
stock_code = WebDriverWait(driver, 5).until(ec.element_to_be_clickable((By.ID, "ct100_txt_stock_code")))
, которое должно быть:
stock_code = WebDriverWait(driver, 5).until(ec.element_to_be_clickable((By.ID, "ctl00_txt_stock_code")))
Посмотрите на значение идентификатора.Это строчная буква L вместо 1 в части «ctl100» идентификатора.Проверьте остальные и просто скопируйте и вставьте HTML-идентификаторы в свой код.
Это работает для первых 3 шагов, но для шага 4 используйте это:
driver.find_element_by_xpath("/html//form[@id='aspnetForm']/table//a[@href='javascript: if (preprocessMainForm() == true ) document.forms[0].submit();']").click() # click on search buttom