下面是具体的发布操作,我没有进行模块封装 只是简单的直接操作
# -*- coding: utf-8 -*
from selenium import webdriverimport time
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()driver.get("https://www.csdn.net/")
driver.maximize_window()
first_handle = driver.current_window_handle
driver.find_element_by_link_text(u'登录').click()
time.sleep(1)
driver.find_element_by_id("username").send_keys('博客账户')
driver.find_element_by_id("password").send_keys('博客密码')
driver.find_element_by_class_name("logging").click()
time.sleep(2)
driver.find_element_by_xpath("html/body/div[1]/div/div/ul/li[3]/a/span").click()
time.sleep(4)
#handles操作 allhandles数据是以列表形式进行存放的 我们使用索引进行操作
all_handles = driver.window_handles
driver.switch_to.window(all_handles[1])
#因为我是用了chrome和firefox俩个浏览器 所以做了一个判断
if driver.name == 'chrome':
pass
else:
driver.maximize_window()
driver.find_element_by_xpath(".//*[@id='btnStart']").click()
s = driver.find_element_by_id('selType')
Select(s).select_by_index(1)
driver.find_element_by_id('txtTitle').send_keys(u'自己的原创')
#切换iframe框架并使用键盘事件去进行操作 因为这个时候直接使用xpath去定位会失败所以我们需要借用tab键
driver.switch_to.frame('xhe0_iframe')
driver.find_element_by_xpath('html/body').send_keys(Keys.TAB)
driver.find_element_by_xpath('html/body').send_keys(u'原文内容')
driver.switch_to.default_content()
#操控下拉框
if driver.name == 'Chrome':
js = 'var q=document.body.scropllTop=10000'
driver.execute_script(js)
else:
js = 'var q=document.documentElement.scrollTop=1000'
driver.execute_script(js)
#复选框操作
driver.find_element_by_xpath('.//*[@id="moreDiv"]/div/div[3]/div/div[2]/div[4]/label/i').click()
#下拉框操作
s1 = driver.find_element_by_id('radChl')
Select(s1).select_by_index(6)
#点击发布
driver.find_element_by_xpath('.//*[@id="btnPublish"]').click()