Python+selenium 易班自动化发动态

设计思路:

1、环境部署

selenium的安装

1、pip install selenium
2、包安装
*官网 洋葱还是可以访问的
https://docs.seleniumhq.org/
*selemnium官网已墙所以使用第三方访问
https://pypi.org/project/selenium/

将包解压在Python目录下
cd 该目录
python setup.py build
python setup.py install

issue
环境配置问题详见知乎干文
知乎干货-钢铁是怎样摧残的

webdriver 驱动的安装
官网selenium
在Third Party Drivers, Bindings, and Plugins标题下下载相关驱动
然后解压到Python 的目录下

设置环境变量
path

C:\Python27\Scripts;C:\Python27;C:\Python27\selenium;

2、代码设计

目标网站
登录地址

登录界面

引用模块并初始化

from selenium import webdriver
wd = webdriver.Firefox()
#打开浏览器
wd.get("https://www.yiban.cn/login?go=https%3A%2F%2Fwww.yiban.cn%2F")
#网页跳转
wd.maximize_window()
#放大窗口
填充表单、登录
#查找html id获取位置
element_time=wd.find_element_by_id(u'account-txt')
element_time.send_keys(u'123456789')#填充用户名
element_time=wd.find_element_by_id('password-txt')
element_time.send_keys(u'password')#填充密码
element_time=wd.find_element_by_id(u'login-btn')
element_time.click()#模拟点击
push.png
wd.get("https://www.yiban.cn/my/publishfeed")#跳转到发动态页面
element_time=wd.find_element_by_class_name(u'textarea')
element_time.send_keys(u'hello')
iss.png

按钮名字和class这些重复了,所以就不能用模糊的类来查找了

重复会导致冲突.png

使用XPath路径 绝对路径解决
XPath.png
element_time=wd.find_element_by_xpath(u'/html/body/main/div/section/div[2]/div/div/a")
element_time.click()
from selenium import webdriver

wd = webdriver.Firefox()
wd.get("https://www.yiban.cn/login?go=https%3A%2F%2Fwww.yiban.cn%2F")
wd.maximize_window()
os.system("pause")
element_time=wd.find_element_by_id(u'account-txt')
element_time.send_keys(u'123456789')
element_time=wd.find_element_by_id('password-txt')
element_time.send_keys(u'password')
element_time=wd.find_element_by_id(u'login-btn')
element_time.click()
#
wd.get("https://www.yiban.cn/my/publishfeed")
element_time=wd.find_element_by_class_name(u'textarea')
element_time.send_keys(u'hello')
element_time=wd.find_element_by_xpath(u'/html/body/main/div/section/div[2]/div/div/a")
element_time.click()

相关支持连接可参考:

关于元素的定位
页面元素定位

  • 本文仅供参考 只提供实现过程 原理以及习惯函数 请详见其他贴子或官网
  • 此贴见笑了 有问题还望大佬们多多批评指点

你可能感兴趣的:(Python+selenium 易班自动化发动态)