在使用selenium上的一些小问题,但是自己debug快要疯掉啦
本人初次接触selenium,刚入门不久后想从一个网站上爬一些数据,具体流程为:进入百度--》在搜索框中输入关键词--》搜索完毕点进其中一个网站--》进入网站内爬取数据,而在最后一步中使用xpath无论如何都无法定位到需要的数据,甚至无法搜索到该网站的搜索框。
以下为具体的代码:
xpath可能不是很准确,可以采用其它辅助的手段来帮助正确获取。比如css的选择器等
不知道你这个问题是否已经解决, 如果还没有解决的话:我可以尝试解决这个问题。根据您提供的信息,问题可能出现在搜索框定位和网站句柄切换上。以下是一些可能的解决方案:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
wait = WebDriverWait(driver, 10)
search_box = wait.until(EC.presence_of_element_located((By.ID, "kw")))
search_box.send_keys("关键词")
search_box = driver.find_element_by_css_selector("input#kw")
iframe = driver.find_element_by_css_selector("iframe.iframe-class")
driver.switch_to.frame(iframe)
element = driver.find_element_by_xpath("//div[@class='myclass']")
# 切回到默认的上下文
driver.switch_to.default_content()
parent_window = driver.current_window_handle
# 点击弹出窗口的按钮或链接
# ...
# 切换到新窗口
for handle in driver.window_handles:
if handle != parent_window:
driver.switch_to.window(handle)
break
element = driver.find_element_by_xpath("//div[@class='myclass']")
# 切回到原来的窗口
driver.switch_to.window(parent_window)
以上是我可能的解决方案,但也可能出现其他问题。如果您能提供更具体的代码和报错信息,我可以更好地为您解决问题。