文章目录
目的
本文主要目的是使用xpath、模拟输入和模拟点击协作,具体如下:
- 打开百度,搜索CSDN
- 进入CSDN,搜索selenium使用———xpath和模拟输入和模拟点击协作这篇文章。
- 点击进入该文章进行查看
搜索CSDN
打开百度
browser.get("https://www.baidu.com/")
在输入框中输入CSDN
找到输入框。首先右键输入框,进入检查模式;其次右键对应的HTML代码,选择Copy->Copy XPath,最后得到XPath。
有了XPath后,可以使用Selenium进行定位,并把需要输入的内容填写上。
browser.find_element_by_xpath('//*[@id="kw"]').send_keys("CSDN")
点击搜索按钮
使用上述步骤找到按钮的XPath的值,并模拟点击
browser.find_element_by_xpath('//*[@id="su"]').click()
进入CSDN
判断页面是否加载完成
选择页面中你要点击的元素的id,并以此判断该网页是否完成加载。这里我使用了页面中id为content_left的元素用于判断我需要点击的组件是否加载完成
print("开始加载")
Wait(browser,60).until(EC.presence_of_element_located((By.ID,"content_left")))print("加载结束")
在得到需要点击的组件加载完成的信息后,使用上述步骤找到CSDN网页的XPath的值,并点击进入
browser.find_element_by_xpath('//*[@id="1"]/div/div[1]/h3/a[1]').click()
从CSDN首页进行文章搜索
判断需要使用的部分是否加载完成
print("开始加载")
Wait(browser,60).until(EC.presence_of_element_located((By.ID,"toolbar-search-button")))print("加载结束")
输入信息并点击搜索
browser.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys("selenium使用———xpath和模拟输入和模拟点击协作")
browser.find_element_by_xpath('//*[@id="toolbar-search-button"]').click()
进入文章并滚动
print("开始加载")
Wait(browser,60).until(EC.presence_of_element_located((By.ID,"post-1562")))print("加载结束")# # 直接拉到底# js = 'window.scrollTo(0, document.body.scrollHeight)'# browser.execute_script(js)# 缓慢拉动
js ="return action=document.body.scrollHeight"
new_height = browser.execute_script(js)for i inrange(0,new_height,10):
browser.execute_script('window.scrollTo(0, %s)'%(i))
全部代码
有点乱
#coding=utf-8from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as Wait
import time
# 初始化浏览器
browser = webdriver.Chrome()# # 使用百度搜索CSDN# browser.get("https://www.baidu.com/")# # 找到输入框并输入# browser.find_element_by_xpath('//*[@id="kw"]').send_keys("CSDN")# # 找到按钮并点击# browser.find_element_by_xpath('//*[@id="su"]').click()# # 进入CSDN# print("开始加载")# Wait(browser, 60).until(EC.presence_of_element_located((By.ID, "content_left")))# print("加载结束")# browser.find_element_by_xpath('//*[@id="1"]/div/div[1]/h3/a[1]').click()# # 在CSDN中搜索指定文章# print("开始加载")# Wait(browser, 60).until(EC.presence_of_element_located((By.ID, "toolbar-search-button")))# print("加载结束")# browser.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys("selenium使用———xpath和模拟输入和模拟点击协作")# browser.find_element_by_xpath('//*[@id="toolbar-search-button"]').click()# browser.get('https://so.csdn.net/so/search?spm=1000.2115.3001.4501&q=aa&t=&u=')# print("开始加载")# Wait(browser, 60).until(EC.presence_of_element_located((By.ID, "app")))# print("加载结束")# browser.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/div/div[1]/h3').click()
browser.get('http://www.selenium.org.cn/1562.html')print("开始加载")
Wait(browser,60).until(EC.presence_of_element_located((By.ID,"post-1562")))print("加载结束")# # 直接拉到底# js = 'window.scrollTo(0, document.body.scrollHeight)'# browser.execute_script(js)# 缓慢拉动
js ="return action=document.body.scrollHeight"
new_height = browser.execute_script(js)for i inrange(0,new_height,10):
browser.execute_script('window.scrollTo(0, %s)'%(i))# browser.quit()
版权归原作者 时闻折竹 所有, 如有侵权,请联系我们删除。