selenium常用代码

from selenium import webdriver
# 1. 添加浏览器设置参数对象

options = webdriver.ChromeOptions()
# 2. 设置中文,与下载无弹窗指定路径

options.add_argument('lang=zh_CN.UTF-8')

prefs = { 'profile.default_content_settings.popups':0 ,'download.default_directory':'C:\\Users\\del'}

options.add_experimental_option('prefs',prefs)
# 3. 更换请求头

options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
# 4. 生成浏览器对象

driver = webdriver.Chrome("无头浏览器位置",chrome_options=options)

driver.get('链接')
# 5. 使用xpath定位元素与元素属性

# 元素定位

元素 = driver.find_element_by_xpath('xpath表达式')

元素 = driver.find_element_by_link_text('文本链接')

元素 = driver.find_element_by_partial_link_text()('部分文本链接')

# 元素文本属性值

元素.text

# 获取元素属性值

元素.get_attribute(属性)

# 为True为元素可见

元素.is_displayed()

# 为True为元素可操作

元素.is_enabled()
# 6. 控制浏览器窗口大小,像素点宽480高800显示

driver.set_window_size(480,800)
# 7. 前进(返回之前的网页)与后退

driver.forward()

driver.back()
# 8. 模拟浏览器刷新当前页面

driver.refresh()
# 9. 简单元素操作:清除文本、模拟输入、单击元素

元素.clear()

元素.send_Keys('输入的值')

元素.click()
# 10. 提交表单,例如输入之后的回车操作

元素.submit()
# 11. 鼠标事件

# 导入提供数表操作的ActionChains类

from selenium.webdriver.common.action_chains import ActionChains

# 鼠标悬停

ActionChains(driver).move_to_element(元素).perform()

# 鼠标拖拽

ActionChains(driver).drag_and_drop(拖拽元素,目标元素).perform()

# 鼠标右击

ActionChains(driver).context_click(元素).perform()

# 鼠标双击

ActionChains(driver).double_click(元素).perform()
# 12. 键盘事件

from selenium.webdriver.common.keys import Keys

元素.send_keys(Keys.F12)
# 13. 当前界面url

driver.current_url
# 14. 显示等待:每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions
element = WebDriverWait(driver,最长超时时长,检测的间隔时间默认0.5s).until(

expected_conditions.presence_of_element_located((By.ID,'kw'))

)

# 15. 隐式等待,操作没有定位到元素则等待10s抛出异常

driver.implicitly_wait(10)
# 16.多表单切换:遇到frame或者iframe表单嵌套页面,要定位内嵌页面上的元素

driver.switch_to.frame(id或者name或者定位的frame元素)

# 跳出当前一级表单

driver.switch_to.parent_frame()

# 跳到最外层页面

driver.switch_to.default_content()
# 17. 多窗口切换

driver.switch_to.window(driver.window_handles[0])
# 18. 警告框处理:接受警告框

driver.switch_to_alert().accept
# 19. 操作cookie

# 获取cookie字典

driver.get_cookies()

# 获取cookie值

driver.get_cookie(name)

# 写入cookie

driver.add_cookie(cookie字典)

# 删除cookie信息

driver.delete_cookie(name)

driver.delete_all_cookies()
# 20. 执行js

driver.execute_script(js)
# 21. 窗口截屏

driver.get_screenshot_as_file()
# 22. 关闭窗口

driver.close()
# 23. 退出:退出驱动以及关闭所有窗口

driver.quit()
# 24. 捕捉log

import logging

logging.basicConfig(level=logging.DEBUG)
日常笔记

PyautoGui常用教程

2022-9-10 0:28:25

日常笔记

v2ray nginx 反代教程

2022-10-23 19:44:49

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索