selenium爬虫问题汇总

基本框架#

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

# 打开driver
driver = webdriver.Edge("./msedgedriver.exe")
# 请求url
driver.get("https://baidu.com")
# 根据XPATH定位元素,如果XPATH定位不到则尝试适用CLASS定位
input = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 往输入框输入元素
input.clear()
input.send_keys("selenium")
# 点击按钮
submit = driver.find_element(By.XPATH, '//*[@id="su"]')
submit.click()

遇到的问题#

打开文件乱码#

根据文件的编码方式,在打开文件时指定解码方式即可

f = open('test.txt', 'r', encoding='UTF-8')

Message: element not interactable#

有些元素会在鼠标移动到其上方后改变自身属性,所以需要模拟鼠标并二次定位

action = ActionChains(driver)
btn = driver.find_element(
    By.XPATH, '//*[@id="app"]/button')
action.move_to_element(btn).perform()
time.sleep(1) # sleep一下等待页面变化完成
new_btn = driver.find_element(
    By.XPATH, '//*[@id="app"]/button')
new_btn.click()

定位不到元素#

  1. 检查frame,可能需要进行switch_to_frame()
  2. 适当进行sleep()

作者:yuxiayizhengwan

出处:https://www.cnblogs.com/yuxiayizhengwan/p/16824058.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   雨下yi整晚  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示