selenium上的selexbox存在检查错误 用python在Selenium上编写代码

selenium上的selexbox存在检查错误 用python在Selenium上编写代码,python,selenium,selenium-webdriver,web-crawler,Python,Selenium,Selenium Webdriver,Web Crawler,我一直在做爬虫。我还不完全明白。所以我有一个问题。也许是34行代码。我很担心马克 它的用途是time.sleep2方法。因为它在更改sel.select_by_visible_textvalue时没有检测到选择框 我该怎么做?我不想占用时间。睡眠2法。 我已经尝试了预期的条件。元素的存在不起作用。我想这是关于dropbox的问题。这个大小基本上不是因为我尝试了另一个大小并尝试了预期的\u条件时它表现得很好。位于的\u元素\u的存在将不起作用,因为您可以使用的条件是元素可单击、元素可见等等。 用于

我一直在做爬虫。我还不完全明白。所以我有一个问题。也许是34行代码。我很担心马克 它的用途是time.sleep2方法。因为它在更改sel.select_by_visible_textvalue时没有检测到选择框

我该怎么做?我不想占用时间。睡眠2法。
我已经尝试了预期的条件。元素的存在不起作用。我想这是关于dropbox的问题。这个大小基本上不是因为我尝试了另一个大小并尝试了预期的\u条件时它表现得很好。位于的\u元素\u的存在将不起作用,因为您可以使用的条件是元素可单击、元素可见等等。 用于显式等待的元素可用且也可单击,但由于其他元素重叠,因此该元素失败

由于另一个元素的重叠需要时间才能消失,我们必须等待重叠消失,然后才能单击该元素。 显式等待可以等待元素出现并可单击,它已经存在,但被其他元素隐藏


在这种情况下,我们必须使用time.sleep进行硬等待

是否收到错误消息?你能告诉我你为什么要取消时间吗。sleep@thebadguy对不起,我迟到了。我正在修电脑。我回来谈正事了。你的例子很好。这个问题不是很重要。我发生了一些问题,以防我断开了一段时间的网络连接。好的,我知道了。那么while语句呢?wait.sleep->dropbox click->check element with before element->wait.sleep->dropbox click->check element with before element。很抱歉这是我的附件。我想要完美地编写代码
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&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()