'''
三种等待
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()