python selenium 表现等待 + EC
expected_conditions是selenium的一个模块,主要用于对页面元素的加载进行判断,包括元素是否存在,可点击等等。
presence_of_element_located(locator)方法:判断一个元素存在于页面中,存在则返回元素本身,不存在则报错。参数locator:定位器是一个数据类型元组(“元素定位方式”, “方式对应的值”)
例子:
- '''
- 需求:打开https://www.baidu.com,输入中秋节快乐,点击百度一下,点击搜索处理的第一个链接,要求先对每个元素进行判断,元素存在则再进行输入或点击的操作
- '''
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.support.wait import WebDriverWait
- # 打开浏览器
- driver = webdriver.Chrome()
- # 打开百度
- driver.get('https://www.baidu.com/')
- # 输入中秋节快乐
- loc_search = (By.ID, 'kw')
- ele_serach = EC.presence_of_element_located(loc_search)(driver)
- ele_serach.send_keys('中秋节快乐')
- # 点击百度一下按钮
- loc_button = (By.ID, 'su')
- ele_button = EC.presence_of_element_located(loc_button)(driver)
- ele_button.click()
- # 点击第一个链接
- loc_click = (By.XPATH, '//*[@id="1"]/div/div[1]/div/h3/a/div/div/p/span/span')
- # 利用显示等待判断元素是否出现
- wait = WebDriverWait(driver, 5, 1)
- ele_click = wait.until(EC.presence_of_element_located(loc_click), message='没有找到该元素')
- ele_click.click()
- # 关闭浏览器
- driver.quit()
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |