Ошибка selexbox при проверке на селене

Код в Selenium by python

from selenium import webdriver from selenium.webdriver.support.select import Select from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import time from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() driver.maximize_window() driver.get("https://motul.lubricantadvisor.com/Default.aspx?data=1&amp;lang=ENG&lang=eng") def getallcars(): wait = WebDriverWait(driver, 10) wait.until(EC.presence_of_element_located((By.ID, "ctl00_ContentPlaceHolder1_rptCategoryBtn_ctl01_btnImage"))) driver.find_element(By.ID, "ctl00_ContentPlaceHolder1_rptCategoryBtn_ctl01_btnImage").click() wait.until(EC.presence_of_element_located((By.ID, "ctl00_ContentPlaceHolder1_lblSelectedMake"))) driver.find_element(By.ID, 'ctl00_ContentPlaceHolder1_lblSelectedMake').click() wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#ctl00_ContentPlaceHolder1_lstMake"))) el = driver.find_element(By.NAME,"ctl00$ContentPlaceHolder1$lstMake") car =[] for option in el.find_elements(By.TAG_NAME,'option'): car.append((option.text).encode('utf8')) return car cars=getallcars() for value in cars: drop = driver.find_element(By.CSS_SELECTOR, '#ctl00_ContentPlaceHolder1_lstMake') sel = Select(drop) sel.select_by_visible_text(value) time.sleep(2) #<---- THIS POINT!! driver.find_element(By.ID,'ctl00_ContentPlaceHolder1_HeaderModel').click() el2 = driver.find_element(By.NAME, "ctl00$ContentPlaceHolder1$lstModel") print "The models for %s are:" %value for option in el2.find_elements(By.TAG_NAME,'option'): print option.text action = ActionChains(driver) action.move_to_element_with_offset(el2, 300, 200) action.click() action.perform() driver.find_element(By.CSS_SELECTOR,'#ctl00_ContentPlaceHolder1_HeaderMake').click() 

Я делаю сканер. Я пока не понимаю. поэтому у меня есть вопрос. может быть, это код 34line. Я был знаком о том, что это использование "time.sleep(2)" . потому что он не обнаружил поле выбора, когда это изменилось в отношении « sel.select_by_visible_text(value) »

Как мне это сделать? Я не хочу использовать метод « time.sleep(2) ». уже я попробовал « expected_conditions.presence_of_element_located ». Это не работает. Я думаю, это проблема с Dropbox. этот размер не в основном потому, что он преуспел, когда я попробовал другой размер, попробовал « expected_conditions.presence_of_element_located »

Явное ожидание не будет работать, потому что условия, которые вы можете использовать, – это «элемент, который можно щелкнуть», «элемент должен быть видимым» и тому подобное. Элемент, который вы используете для явного ожидания, доступен и доступен для клики, но его сбои, потому что другой элемент перекрывает его.

Поскольку перекрытие другого элемента требует времени, чтобы исчезнуть, нам нужно дождаться исчезновения перекрытия, прежде чем мы сможем щелкнуть элемент. Явное ожидание может ждать появления элемента и щелчка, который уже есть, но он скрыт другим элементом.

В этом случае мы должны использовать time.sleep (), чтобы выдержать жесткое ожидание