Рассмотрите возможность использования метода waitUntil или Implicit / Explicit waits для ожидания загрузки элемента. Таким образом, вы можете обойти ошибку, показанную выше, код ниже для метода ожидания.
browser = webdriver.Firefox()
browser.get("url")
delay = 3 # seconds
try:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
print "Page is ready!"
except TimeoutException:
print "Loading took too much time!"
Кажется, у вас также есть ошибка в следующем коде
search_box = driver.find_element_by_id("Find")
search_box.send_keys(ticker_symbol)
search_box.submit()
id=find
находит Search Box
, а не input
элемент и, следовательно, отправляет keys
значение button
неверно. Я бы порекомендовал вам использовать xpath
, чтобы однозначно найти элемент по вашему выбору.
Следующее сообщение отправит значение в поле ввода и сделает нажатие кнопки на кнопке SEARCH
.
driver.findElement(By.xpath("//*[@id="lesscompany"])).sendKeys("your value");
driver.findElement(By.xpath("//*[@id="search_button_1"]")).click();