首页 > 代码库 > selenium实战-自动退百度云共享群

selenium实战-自动退百度云共享群

必备知识

在官网上下好selenium-3.0.1-py2.py3-none-any.whl,然后进入下载文件所在的位置

pip install selenium-3.0.1-py2.py3-none-any.whl

再下个Chrom的驱动,具体可以参考虫师的博客

Selenium快速入门

1. 需要的模块和基本操作

from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()

  其中webdriver 用来打开浏览器,ActionChains是用来控制浏览器的一些操作

2. 访问网络

driver.get(‘http://pan.baidu.com‘)

3. 在当前页面输入账号、密码、验证码

  这里很6的地方在于只要始终在当前窗口操作,脚本里的driver和你所改动的操作是同步的,省去了很多事

4. 获得浏览器的焦点,用来模拟鼠标

mouse = ActionChains(driver)

5. 必备知识

  5.1 定位元素

element = driver.find_element_by_xpath(‘  ‘)
element = driver.find_element_by_css_selector()
element = driver.find_element_by_id()
element = driver.find_element_by_name()
element = driver.find_element_by_class_name()

  按个人经验,在谷歌浏览器按F12后右键copy可以复制xpath或css_selector,比较方便,而id、name、class_name在定位按钮、文本框时比较有用

  5.2 浏览器操作

  看很多教程里都是说控制鼠标,个人觉得应该说模拟鼠标或控制浏览器焦点更合适,因为鼠标根本没动嘛,只有焦点改变了。

context_click() # 右击
double_click() # 双击
drag_and_drop() # 拖动

element = driver.find_element_by_...
# 在某个元素上右击
ActionChains(driver).contex_click(element).perform()
# 移动到某个元素上
ActionChains(driver).move_to_element(element).perform()
# 在某个元素上左击
ActionChains(driver).click(element).perform()
# 滚动
driver.execute_script("window.scrollBy(dx, dy)", "")
# 偏移
ActionChains(driver).move_by_offset(dx, dy).perform()
# 左击
ActionChains(driver).click().perform()

6. 执行脚本

# 移到好友并点击
friend = driver.find_element_by_css_selector(‘#body > div > div > div > div.module-sectionLists > ul > li.tabs-item.friend-item > a > em‘)
mouse.move_to_element(friend).perform()
mouse.click().perform()

# 移动到好友下方的第一个群组并点击
driver.implicitly_wait(5)
while 1:
    try:

        mouse.move_to_element(friend).perform()
        mouse.move_by_offset(0, 116).perform()
        mouse.click().perform()
        time.sleep(0.1)
        # 分享文件按钮
        fenx = driver.find_element_by_xpath(‘//*[@id="body"]/div/div/div/div[2]/div[2]/div/div/a‘)
        fenx.click()
        time.sleep(0.1)
        # 选中了下拉标签
        driver.find_element_by_xpath(‘//*[@id="body"]/div/div/div/div[2]/h2/div[1]/div/span‘).click()
        time.sleep(0.1)
        # 退群按钮
        time.sleep(0.1)
        driver.find_element_by_class_name(‘group-exit-btn‘).click()
        # 确认按钮
        time.sleep(0.1)
        driver.find_element_by_css_selector(‘#_disk_id_26‘).click()
    except StandardError, e:
        time.sleep(1)

  

selenium实战-自动退百度云共享群