1 按键操作
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 找到输入框,并且输入指定内容
driver.find_element_by_id('kw').send_keys('selenium')
time.sleep(1)
# 全选输入框内的全部内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
# 找到输入框,并且输入指定内容/中文格式
driver.find_element_by_id('kw').send_keys(u'爬虫技巧')
time.sleep(1)
# 点击百度,进行搜索
driver.find_element_by_id('su').click()
time.sleep(1)
# 退出浏览器
driver.quit()
2 设置等待时间
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# WebDriverWait网页等待
# 值1:等待的对象
# 值2:等待的时间
# WebDriverWait经常和until或者until not一起使用
is_visible = WebDriverWait(driver,10).until(lambda a:button.is_displayed())
print(is_visible)
WebDriverWait() 和 time.sleep()异同点:
1.都是让程序等待执行的时间
2.time的时间是固定的,时间长短不会随着标签的加载速度而改变
WenDriverWait时间是不固定的,等待多少时间要看标签的加载时间和指定的固定的时间
3.如果在指定的时间内,标签仍然没有加载出来,那么time和WebDriverWait都会爆出异常
3 点击click()的简单应用
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 找到logo的标签
driver.find_element_by_class_name('index-logo-src')
logo = driver.find_element_by_xpath('//div[@id="lg"]/img')
# 等待直到目标标签出现
WebDriverWait(logo,10).until(lambda driver:logo.is_displayed())
# 双击
ActionChains(driver).double_click(logo).perform()
# 鼠标移动,将鼠标移动到指定位置
time.sleep(1)
more = driver.find_element_by_class_name('bri')
WebDriverWait(driver,10).until(lambda driver : more.is_displayed())
ActionChains(driver).move_to_element(more).perform()
4 标签选择
# 通过标签名字来找到指定的标签
btns = driver.find_elements_by_tag_name('button')
print(btns)
# 1.通过索引来找到指定的标签
btns[1].click()
# 2.通过属性来找到指定的标签
for btn in btns:
if btn.get_attribute('type') == 'button':
btn.click()
time.sleep(3)
btn.click()
# 3.弹出指定的元素,如果不写索引,默认为最后一个
driver.find_elements_by_css_selector('button').pop().click()
# [type=button] []里面为限制条件 限制选择的内容
driver.find_elements_by_css_selector('button[type=button]').pop().click()
# 4.通过....来找到指定的标签
driver.find_element(by=By.ID,value='pink').click()
5 window切换
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 获取当前的window对象
current_window = driver.current_window_handle
# 获取当前窗口编号,和网页标题
print(current_window,driver.title)
driver.find_element_by_name('tj_trnews').click()
news = WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_css_selector('.hdline0 .a3'))
news.click()
# 输出所有的窗口
all_windows = driver.window_handles
print(all_windows)
for window in all_windows:
if window!= current_window:
# 切换窗口
driver.switch_to.window(window)
扫描二维码关注公众号,回复:
2784367 查看本文章
![](/qrcode.jpg)