1.selenium等待元素加载
程序执行速度很快,直接获取标签但是标签还没加载好,会报错。
当使用driver.find_element_by_xxx()方法查找元素时,如果元素没有立即出现在页面上,那么默认情况下,WebDriver会立即抛出NoSuchElementException异常。但是,如果使用了隐式等待,WebDriver将在指定的时间内等待元素出现,如果在等待时间内找到了元素,则立即返回该元素;如果等待时间已过仍然没有找到元素,则抛NoSuchElementException异常。
# 显式等待:当查找一个标签的时候,给它加单独加等待时间
# 隐式等待:只要写一行,在查找标签时,如果标签没加载好,会自动等待
browser.implicitly_wait(10)
2.selenium元素操作
# 输入框输入内容,删除内容
tag.send_keys(写文字)
tag.clear()
# 按钮点击
tag.click
3.selenium执行js
# 打开一个浏览器页面
from selenium import webdriver
import time
bro = webdriver.Chrome()
bro.get('https://www.pearvideo.com/')
bro.implicitly_wait(10)
# 获取当前页面cookie
bro.execute_script('alert(document.cookie)')
# 获取当前访问的地址
bro.execute_script('alert(window.location)')
# 滑动屏幕
bro.execute_script('scrollTo(0,document.documentElement.scrollHeight)')
time.sleep(5)
# 关闭选项卡
bro.close()
# 关闭页面
bro.quit()
4.selenium切换选项卡
from selenium import webdriver
import time
bro = webdriver.Chrome()
bro.get('https://www.pearvideo.com/')
bro.implicitly_wait(10)
# 获取所有选项卡
print(bro.window_handles)
# 开启选项卡
bro.execute_script('window.open()')
# 切换到某个选项卡
bro.switch_to.window(bro.window_handles[1])
bro.get('http://www.taobao.com')
# 切换到某个选项卡
bro.switch_to.window(bro.window_handles[0])
time.sleep(2)
# 关闭选项卡
bro.close()
# 关闭页面
bro.quit()