Ошибка 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 »

One Solution collect form web for “Ошибка selexbox при проверке на селене”

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

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

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

  • Как удалить запрос из URL-адреса?
  • Splinter или Selenium: можем ли мы получить текущую html-страницу после нажатия кнопки?
  • Как сканировать веб-сайт или извлекать данные в базу данных с помощью python?
  • Локально запустите всех пауков в Scrapy
  • Ограничение глубины набора инструментов для разрешенного_домена
  • Как очистить весь контент каждой ссылки с помощью scrapy?
  • Как извлечь URL-адреса с HTML-страницы в Python
  • Scrapy view возвращает пустую страницу
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.