python爬虫——selenium自动化测试工具

基本函数

from selenium.webdriver import Chrome

driver = Chrome()

driver.get(url='') # GET请求打开网页

driver.close() # 关闭浏览器对象

driver.current_url # 当前页面URL

driver.page_source # 网页源代码

driver.get_screenshot_as_file(filename='') # 保存页面截图

cookie

driver.get_cookies() # Cookie

driver.add_cookie(cookie_dict={}) # 添加Cookie

driver.delete_all_cookies() # 删除Cookie

查找节点

from selenium.webdriver.common.by import By

element = driver.find_element(by=By.ID | ..., value='') # 查找第一个符合条件的元素

elements = driver.find_elements(by=By.ID | ..., value='') # 查找所有符合条件的元素

节点信息

element.is_displayed() # 元素可见

element.text # 元素内部的文本信息

element.id # 元素id

element.location # 元素在页面中的相对位置

element.tag_name # 标签名

element.size # 元素的大小(宽高)

element.get_attribute(name='') # ‘name’属性的值

对节点进行操作

element.clear() # 清空输入框

element.click() # 点击

from selenium.webdriver.common.keys import Keys

element.send_keys('value, str' | Keys.ENTER | ...) # 输入文字或执行操作

from selenium.webdriver import ActionChains

actions = ActionChains(driver=driver)

actions.drag_and_drop(source=element, target=element) # 鼠标拖拽

actions.perform() # 执行动作链

前进与后退

driver.forward() # 前进

driver.back() # 后退

等待

driver.implicitly_wait(time_to_wait='float') # 等待‘time_to_wait’后再查找DOM

from selenium.webdriver.support.wait import WebDriverWait  

wait = WebDriverWait(driver=driver, timeout='float') # 指定最长等待时间为‘timeout’

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

web_element = EC.presence_of_element_located(locator=(By.ID | ..., '')) # 设置等待条件为元素出现

web_element = EC.element_to_be_clickable(mark=(By.ID | ..., '')) # 设置等待条件为元素可点击

web_element = EC.visibility_of_element_located(mark=(By.ID | ..., '')) # 设置等待条件为元素可见

wait.until(method=web_element) # 在规定时间内满足等待条件,就返回这个元素

切换父Frame与子Frame

driver.switch_to.frame(frame_reference='') # 切换到某个子Frame

driver.switch_to.parent_frame() # 切换到父Frame

运行JS

driver.execute_script(script='') # 模拟运行Javascript

标签页

driver.execute_script(script='window.open()') # 打开新标签页

driver.window_handles # 当前开启的所有标签页代号组成的列表

window = driver.window_handles['int'] # 第‘int+1’个标签页的代号

driver.switch_to.window(window_name=window) # 切换到某个标签页

自定义路径

from selenium.webdriver.chrome.service import Service

service = Service(executable_path='') # 自定义webdriver位置

driver = Chrome(service=service)

基础反屏蔽

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_experimental_option(name='excludeSwitches', value=['enable-automation']) # 隐藏webdriver提示条

option.add_experimental_option('useAutomationExtension', False) # 隐藏自动化扩展信息

driver = Chrome(options=option)

cmd_javascript = 'Object.defineProperty(navigator, "webdriver", {get:()=>undefined})' # 将webdriver属性置空

driver.execute_cdp_cmd(cmd='Page.addScriptToEvaluateOnNewDocument', cmd_args={'source':cmd_javascript}) # 在页面刚加载的时候执行JavaScript语句

无头模式

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_argument(argument='--headless') # 开启无头模式

driver = Chrome(options=option)

driver.set_window_size(width='int', height='int') # 设置窗口大小

无认证代理

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_argument(argument='--proxy-server=http://'+'proxy, str') # 无认证代理

driver = Chrome(options=option)

定位器通过 By 对象进行选择的策略

from selenium.webdriver.common.by import By

By.ID # id属性

By.CSS_SELECTOR # CSS选择器

By.XPATH # XPath

相关推荐

  1. python爬虫——selenium自动化测试工具

    2024-05-10 19:40:04       8 阅读
  2. python学习-自动化测试Selenium

    2024-05-10 19:40:04       27 阅读
  3. Web测试自动化工具Selenium的使用

    2024-05-10 19:40:04       44 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-10 19:40:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 19:40:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 19:40:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 19:40:04       20 阅读

热门阅读

  1. python笔记(17)输入输出

    2024-05-10 19:40:04       8 阅读
  2. 秒杀系统架构设计-01

    2024-05-10 19:40:04       12 阅读
  3. uniapp——预览图片

    2024-05-10 19:40:04       9 阅读
  4. 基于springboot的校园管理系统源码数据库

    2024-05-10 19:40:04       12 阅读
  5. 使用vscode时快速生成console.log()

    2024-05-10 19:40:04       10 阅读
  6. 了解Ansible Playbook

    2024-05-10 19:40:04       10 阅读
  7. 力扣 300. 最长递增子序列 python AC

    2024-05-10 19:40:04       12 阅读
  8. LeetCode hot100-31-G

    2024-05-10 19:40:04       11 阅读