定位元素的介绍在之前的文章已介绍过:https://blog.youkuaiyun.com/manfred1010/article/details/111302139
现在,我们可以让网页元素自动化做点什么了。
页面交互
点击超链接
链接内容
element=driver.find_element_by_link_text("链接文字")
element.click() #单击
文本框:
element.send_keys("some text") #在文本元素中输入"some text"
也可以:
element.clear() #清空内容
下拉框:
selenium有专门的类处理。
from selenium.webdriver.support.ui import Select
select = Select(element)
select.select_by_index(index) ## 通过选项的顺序选择,第一个为 0
select.select_by_value("1") # 选择value="1"的项:通过value的值
select.select_by_visible_text("第一项") # 选择text="第一项"的值,即在下拉时显示的文本
当然可以取消选择:
deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()
Select提供了三个属性方法提供信息:
options ——提供所有的选项的列表,其中都是选项的WebElement元素
options = select.options
all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值
如果是表单 ,可以用select.submit() 来提交。
通过Select提供的方法和属性,我们可以对标准select下拉框进行任何操作,但是对于非select标签的伪下拉框,需要使用XPath定位;
窗口的操作:
for handle in driver.window_handles:
print(handle) #获取窗口句柄
driver.switch_to_window(handle) #切换到指定窗口
driver.refresh() #刷新页面
driver.set_window_size() #设置窗口大小
driver.close() #关闭窗口,只能关闭用driver打开的窗口
driver.quit() #关闭浏览器
driver.switch_to_frame("frameName")
driver.switch_to_default_content() #回到主frame
窗口滚动条
通过执行javascript设置浏览器窗口的滚动条位置
drive.execute_script('window.scrollTo(0, 500)') #滚动到500的位置
drive.execute_script('window.scrollTo(0, document.body.scrollHeight)') #滑到最底部
访问弹出对话框:
driver.switch_to_alert()
浏览历史前进后退
driver.forward()
driver.back()
操作Cookies
get_cookies() 获得所有cookie信息 get_cookie(name) 返回字典的key为“name”的cookie信息
add_cookie(cookie_dict) 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值
delete_cookie(name,optionsString) 删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”
delete_all_cookies() 删除所有cookie信息
driver.add_cookie(cookie) #添加cookies
driver.get_cookie() #获取当前页cookies
无界面浏览器操作
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 1.创建一个参数对象,用来控制chrome以无界面模式打开
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 2.创建浏览器对象
drive = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=chrome_options)