前置条件
需要下载对应的浏览器驱动,并放置到python文件夹下
需要使用到的模块
from selenium import webdriver
from selenium.webdriver.common.by import By
1.生成浏览器对象并定位网页
browser = webdriver.Chrome()
browser.get("http://localhost/selenium/myForm.html")
2.定位元素
username_input = browser.find_element(by=By.ID, value="id01") # 通过id获取
password_input = browser.find_element(by=By.NAME, value="pwd") # 通过name获取
single_sing = browser.find_element(by=By.CSS_SELECTOR, value="[value = 'chang']") # 通过CSS样式表获取
inputs = browser.find_elements(by=By.TAG_NAME, value="input") # 通过tag获取
test_inputs = browser.find_elements(by=By.CLASS_NAME, value="小清新") # 通过类名获取
a_link = browser.find_element(by=By.LINK_TEXT, value="转跳百度") # 通过完整链接文本获取链接对象
a2_link = browser.find_element(by=By.PARTIAL_LINK_TEXT, value="转跳") # 通过模糊的链接文本获取链接对象
button = browser.find_element(by=By.XPATH, value='/html/body/div/button') # 通过XPATH获取元素对象
ex:通过find_elements
获取符合条件的对象数组
a2_links = browser.find_elements(by=By.PARTIAL_LINK_TEXT, value="转跳") # 获取链接文本中包含 ‘跳转’ 的链接对象数组
3.常用的元素操作
username_input = browser.find_element(by=By.ID, value="id01")
username_input.clear() # 清空文本框
username_input.send_keys("aaa") # 键入文本'aaa'
single_sing = browser.find_element(by=By.CSS_SELECTOR, value="[value = 'chang']")
single_sing.click() # 点击
# 下拉框点击
selector_view = browser.find_element(by=By.XPATH, value='//*[@id="id_sel1"]')
selector = Select(selector_view)
selector.select_by_visible_text("唱歌")
4.常用的浏览器操作
browser.quit() # 关闭浏览器
browser.close() # 关闭当前页面
browser.forward() # 浏览器前进
browser.back() # 浏览器后退
handles = browser.window_handles # 获取句柄
browser.switch_to.window(handles[0]) # 切换句柄,即切换tab页
browser.switch_to.alert.accept() # 弹框的确认按钮点击
browser.switch_to.alert.dismiss() # 弹框的取消按钮点击
ActionChains 模拟鼠标操作
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
import time
browser = webdriver.Chrome()
browser.get("http://localhost/selenium/myForm.html")
# 定位元素
a_link = browser.find_element(by=By.LINK_TEXT, value="转跳百度")
# 初始化一个ActionChains
action = ActionChains(browser)
# 对定位的元素执行悬停操作
action.move_to_element(a_link).perform()
time.sleep(2)
# 对定位的元素执行右键操作
action.context_click(a_link).perform()
time.sleep(2)
# 对定位的元素执行双击操作
action.double_click(a_link).perform()
time.sleep(2)
# 鼠标拖动
start_point = browser.find_element(by=By.ID, value="id01")
end_point = browser.find_element(by=By.NAME, value="pwd")
action.drag_and_drop(start_point, end_point).perform()