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

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值