python頁(yè)面加載的等待方式
1、顯式等待
它指定要查找的節(jié)點(diǎn),然后指定一個(gè)最長(zhǎng)的等待時(shí)間,如果規(guī)定時(shí)間內(nèi)加載出來(lái)了這個(gè)節(jié)點(diǎn),就返回查找的節(jié)點(diǎn);如果規(guī)定時(shí)間內(nèi)沒(méi)有加載出該節(jié)點(diǎn),就拋出超時(shí)異常。
fromseleniumimportwebdriver
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.support.uiimportWebDriverWait
fromselenium.webdriver.supportimportexpected_conditionsasEC
broswer=webdriver.Chrome()
broswer.get('https://www.jd.com/')
wait=WebDriverWait(broswer,20)
input_q=wait.until(EC.presence_of_element_located((By.ID,'key')))
button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.button')))
print(input_q,button)
2、隱式等待
當(dāng)使用隱式等待執(zhí)行測(cè)試的時(shí)候,如果Selenium沒(méi)有在DOM中找到節(jié)點(diǎn),將繼續(xù)等待,超出設(shè)定時(shí)間后,則拋出找不到節(jié)點(diǎn)的異常。換句話說(shuō),當(dāng)查找節(jié)點(diǎn)而節(jié)點(diǎn)并沒(méi)有出現(xiàn)的時(shí)候,隱式等待將等待一段時(shí)間再查找DOM,默認(rèn)時(shí)間是0,示例如下:
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.implicitly_wait(10)
browser.get('https://www.jd.com/')
input_q=browser.find_element_by_class_name('button')
print(input_q)
以上就是Python頁(yè)面加載的等待方式,希望能對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。