Loading

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()
posted @ 2022-10-25 10:35  雨下yi整晚  阅读(87)  评论(0)    收藏  举报