1. 简介
- Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。
2.安装
pip3 install selenium
3.下载驱动
-
使用之前,我们还需要下载浏览器驱动到电脑上。
4.导入方法
#导入方法
from selenium import webdriver
5.初始化浏览器
# 1.初始化浏览器为chrome浏览器
browser = webdriver.Chrome()
# 2. 初始化浏览器为firefox浏览器
browser = webdriver.Firefox()
# 3. 初始化浏览器为无界面的chrome浏览器
option = webdriver.ChromeOptions()
option.add_argument("headless")
driver = webdriver.Chrome(chrome_options=option)
6.页面交互
# 1.打开指定URL页面
driver.get("https://www.baidu.com/")
# 2.清空输入框
input.clear( )
# 3.在输入框中输入信息
input.send_keys( "关键词" )
# 4. 点击按钮
submit.click( )
# 5.获取页面源码
driver.page_source
# 6.弹窗处理
alert = driver.switch_to_alert()
# 7.关闭浏览器
driver.quit( )
# 8. cookie处理
#添加cookie
cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’}
driver.add_cookie(cookie)
#获取cookie
driver.get_cookies()
7.定位页面元素
#方法一:定位单个指定元素
#根据id标签定位
• driver.find_element_by_id(" ")
#根据name标签定位
• driver.find_element_by_name(" ")
#根据xpath定位
• driver.find_element_by_xpath(" ")
#根据文字信息定位
• driver.find_element_by_link_text(" ")
#根据链接文字信息定位
• driver.find_element_by_partial_link_text(" ")
根据tag名称定位
• driver.find_element_by_tag_name(" ")
#根据class标签定位
• driver.find_element_by_class_name(" ")
#根据css定位
• driver.find_element_by_css_selector(" ")
#方法二:定位多个元素(这些方法会返回一个列表):
• driver.find_elements_by_name(" ")
• driver.find_elements_by_xpath(" ")
• driver.find_elements_by_link_text(" ")
• driver.find_elements_by_partial_link_text(" ")
• driver.find_elements_by_tag_name(" ")
• driver.find_elements_by_class_name(" ")
• driver.find_elements_by_css_selector(" ")
#方法三:find_element/find_elements
#导入方法:
from selenium.webdriver.common.by import By
• driver.find_element(By.CLASS_NAME, " ")
• driver.find_element(By.CSS_SELECTOR, " ")
• driver.find_element(By.ID, " ")
• driver.find_element(By.LINK_TEXT, " ")
• driver.find_element(By.NAME, " ")
• driver.find_element(By.PARTIAL_LINK_TEXT, " ")
• driver.find_element(By.TAG_NAME, " ")
• driver.find_element(By.XPATH, " ")
==========================================================
• driver.find_elements(By.CLASS_NAME, " ")
• driver.find_elements(By.CSS_SELECTOR, " ")
• driver.find_elements(By.ID, " ")
• driver.find_elements(By.LINK_TEXT, " ")
• driver.find_elements(By.NAME, " ")
• driver.find_elements(By.PARTIAL_LINK_TEXT, " ")
• driver.find_elements(By.TAG_NAME, " ")
• driver.find_elements(By.XPATH, " ")
8.设置等待时间,判断页面是否加载完成
#导入方法:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#设置浏览器等待时间
wait = WebDriverWait(driver, 10)
#设置期待条件
# 1.判断标题是否与期望的一致
• title =wait.until(EC.title_is((By.ID,'#id')))
# 2.判断标题是否包含什么
• title =wait.until(EC.title_contains((By.ID,'#id')))
# 3.指定元素加载完成
• title =wait.until(EC.presence_of_element_located((By.ID,'#id')))
# 4.判断元素是否加载完成
• title =wait.until(EC.presence_of_all_elements_located((By.ID,'#id')))
# 5.判断指定文本信息是否加载完成
• title =wait.until(EC.text_to_be_present_in_element((By.ID,'#id')))
# 6.判断指定元素的值是否加载完成
• title =wait.until(EC.text_to_be_present_in_element_value((By.ID,'#id')))
# 7.判断指定按钮可以点击
• title =wait.until(EC.element_to_be_clickable((By.ID,'#id')))
9.提交表单
#导入方法:
from selenium.webdriver.support.ui import Select
#选中下拉框中元素
select = Select(driver.find_element_by_name('name'))
##定位下拉框位置,3种选择方式
#根据索引值来选中
select.select_by_index(index)
#根据文本信息来选中
select.select_by_visible_text("text")
#根据值来选中
select.select_by_value(value)
##取消已经选择的元素
select = Select(driver.find_element_by_id('id'))
#全部取消
select.deselect_all()
#获取所有已经选中的元素
select = Select(driver.find_element_by_xpath("xpath"))
all_selected_options = select.all_selected_options
#获取所有可选选项
options = select.options
##提交表单
#点击指定按钮,提交表单
driverd .find_element_by_id("submit").click()
#自动搜索距离表单最近的按钮,然后点击按钮,提交表单
element.submit()
网友评论