目的
本文主要目的是使用xpath、模拟输入和模拟点击协作,具体如下:
- 打开百度,搜索优快云
- 进入优快云,搜索selenium使用———xpath和模拟输入和模拟点击协作这篇文章。
- 点击进入该文章进行查看
搜索优快云
打开百度
browser.get("https://www.baidu.com/")
在输入框中输入优快云
找到输入框。首先右键输入框,进入检查模式;其次右键对应的HTML代码,选择Copy->Copy XPath,最后得到XPath。
有了XPath后,可以使用Selenium进行定位,并把需要输入的内容填写上。
browser.find_element_by_xpath('//*[@id="kw"]').send_keys("优快云")
点击搜索按钮
使用上述步骤找到按钮的XPath的值,并模拟点击
browser.find_element_by_xpath('//*[@id="su"]').click()
进入优快云
判断页面是否加载完成
选择页面中你要点击的元素的id,并以此判断该网页是否完成加载。这里我使用了页面中id为content_left的元素用于判断我需要点击的组件是否加载完成
print("开始加载")
Wait(browser, 60).until(EC.presence_of_element_located((By.ID, "content_left")))
print("加载结束")
在得到需要点击的组件加载完成的信息后,使用上述步骤找到优快云网页的XPath的值,并点击进入
browser.find_element_by_xpath('//*[@id="1"]/div/div[1]/h3/a[1]').click()
从优快云首页进行文章搜索
判断需要使用的部分是否加载完成
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 in range(0,new_height,10):
browser.execute_script('window.scrollTo(0, %s)'%(i))
全部代码
有点乱
#coding=utf-8
from 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()
# # 使用百度搜索优快云
# browser.get("https://www.baidu.com/")
# # 找到输入框并输入
# browser.find_element_by_xpath('//*[@id="kw"]').send_keys("优快云")
# # 找到按钮并点击
# browser.find_element_by_xpath('//*[@id="su"]').click()
# # 进入优快云
# 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()
# # 在优快云中搜索指定文章
# 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.youkuaiyun.com/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 in range(0,new_height,10):
browser.execute_script('window.scrollTo(0, %s)'%(i))
# browser.quit()