selenium实现web元素抓取及输入

前置条件

需要下载对应的浏览器驱动,并放置到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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容