from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC #期望条件 from selenium.webdriver.common.by import By #八种定位方式 ''' 三种等待方式 seleep 一直等待 driver.implicitly_wait(30) 全局隐性等待,不会一直等待,待加载后就往下执行 WebDriverWait 显性等待 ''' #创建浏览器驱动 driver = webdriver.Chrome(service_log_path='E:chrome.log') # driver.implicitly_wait(30) #访问一个网站 driver.get('http://www.baidu.com') #点击百度网站的登录按钮 driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_login"]').click() # driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn').click() #这句话的意思是:等待10秒钟的时间,每一秒去检查一次,一直到显示id这个定位元素出现, # (注:期望值,放置元素定位类型和元素定位表达式,所以用元组的形式传递) WebDriverWait(driver,5,1).until(EC.visibility_of_element_located((By.ID,'TANGRAM__PSP_11__footerULoginBtn'))) #直到可见 # WebDriverWait(driver,7,1).until(EC.presence_of_element_located((By.ID,'TANGRAM__PSP_11__footerULoginBtn'))) #直到可点击 # WebDriverWait(driver,7,1).until(EC.element_to_be_clickable((By.ID,'TANGRAM__PSP_11__footerULoginBtn'))) driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn').click() ''' 再iframe里面的内容直接查找是不可以的,需要切换到iframe才能查找 ''' driver.switch_to.frame()