''' 三种等待 1,强制等待 time.sleep(等待时间),一般用在跳转中,知道明显的时间 2,隐式等待 driver.implicitly_wait(等待时间),控制整个网页,等待网页加载完成,规定时间没有加载完成,继续执行下一步,一个网页只需加一个即可,放在所有的请求之前 3,显式等待 WebDriverWait(driver,等待时间,多长时间刷新一次,默认0.5s),该等待中有两个方法 until(元素位置,需要传一个元祖,元祖中有两个值,一个是定位位置方式,一个是定位的元素), until_not()用法和until一样 等待元素加载完成后继续,如果规定时间没有加载完成,继续执行下一步 显式等待需要导入3个包 from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By '''
import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver =webdriver.Chrome() driver.implicitly_wait(30) driver.get("http://www.baidu.com") #定位元素 id =driver.find_element_by_id("kw") name=id.get_attribute("name") print(name) idtest=id.text id.send_keys("wuailexiang") var = time.sleep(1) driver.find_element_by_name("wd") id.clear() id.send_keys("吾爱乐享") driver.find_element_by_id("su").click() wait =WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//a[contains(text(),'www.fenxiangbe.com/p/t')]")))#元祖 driver.find_element_by_xpath("//a[contains(text(),'www.fenxiangbe.com/p/t')]").click() time.sleep(12) driver.close()
评论前必须登录!
注册