工作需要,要往后台添加数据,我又太懒,不想一个一个点,所以写了一个自动提交工具,使用selenium+爬虫做的一个小工具。懒是我进步的阶梯。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import time
import random
class Utils(object):
def __init__(self):
self.driver_path = r'D:\BaiduNetdiskDownload\geckodriver.exe'
# 初始化一个driver,并且指定Firefox的路径
self.driver = webdriver.Firefox(executable_path=self.driver_path)
def getPage_and_Login(self):
# 请求网页
self.driver.get("***************")
# 通过page_source获取网页源代码
# 显示等待,当获取到指定元素后就继续
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'loginbtn')))
# 登录
self.driver.find_element_by_xpath('//input[@name="username"]').send_keys('******')
self.driver.find_element_by_xpath('//input[@name="password"]').send_keys('*******')
self.driver.find_element_by_xpath('//input[@type="submit"]').click()
def addContent(self):
# 点击古诗添加button
self.driver.find_element_by_xpath('//dl[@class="leftmenu"]//dd[2]').click()
self.driver.find_element_by_xpath('//dl[@class="leftmenu"]//dd[2]//ul//li[1]').click()
# 等待3秒,等待iframe加载出来。
time.sleep(3)
# 切换到iframe标签,可以按照index,id,name切换。https://www.cnblogs.com/sunTin/p/7800246.html
self.driver.switch_to.frame(0)
# 点击添加按钮
self.driver.find_element_by_xpath(
'/html/body/div[2]/div/div/div/div[1]/a[1]/span/span[1]').click()
# 添加标题
self.driver.find_element_by_xpath('//*[@id="id_title"]').send_keys('****')
# 添加内容
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[2]/td/span/textarea').send_keys(
'****')
# 添加注释
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[4]/td/span/textarea').send_keys(
'****')
# 添加翻译
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[5]/td/span/textarea').send_keys(
'****')
# 添加赏析
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[6]/td/span/textarea').send_keys(
'****')
# 添加音频
self.driver.find_element_by_name('sound').send_keys('路径')
# 添加作者,下拉框选择
author_selectTag = Select(self.driver.find_element_by_id("id_author"))
author_selectTag.select_by_index(1)
# 添加年龄
self.driver.find_element_by_xpath('//input[@id="id_facility"]').send_keys(10)
# 添加排序
self.driver.find_element_by_xpath('//input[@id="id_ordering"]').send_keys(random.randint(30, 40))
# 添加类型,下拉框选择
type_selectTag = Select(self.driver.find_element_by_id("id_volume"))
type_selectTag.select_by_index(1)
# 添加歌词
self.driver.find_element_by_name('lyric').send_keys('路径')
# 是否上下架,checkbox选择
rememberTag = self.driver.find_element_by_id("id_is_up")
rememberTag.click()
# time.sleep(10)
# driver.close() # :关闭当前页面。关闭一个选项卡
# driver.quit() # :退出整个浏览器。 关闭浏览器
if __name__ == '__main__':
obj = Utils()
obj.getPage_and_Login()
obj.addContent()