xpath

获取文本
a/text()	                 # 获取 a 下的文本
a//text()	                 # 获取 a 下所有元素的文本
//a[text()='下一页']      	# 获取文本为下一页的 a 元素

获取属性
nodename	                 # 选取此节点的所有子节点
/	                         # 从当前节点选取直接子节点
//	                       # 从当前节点选取子孙节点
.	                         # 选取当前节点
..	                       # 选取当前节点的父节点
@	                         # 选取属性
*	                         # 匹配任何元素节点
@*	                       # 匹配任何属性节点
node()	                   # 匹配任何类型的节点

# 选取属于 bookstore 子元素的第一个book元素
/bookstore/book[1] (注意下标从1开始)


# 选取属于 bookstore 子元素的最后一个 book 元素
/bookstore/book[last()]

# 选取属于 bookstore 子元素的倒数第二个 book 元素
/bookstore/book[last()-1]

# 选取属于 bookstore 子元素的 最前面两个 book 元素
/bookstore/book[position()<3]

# 选取所有拥有名为 lang 的属性的title元素
//title[@lang]

# 选取所有 lang 属性为 eng 的 title 元素
//title[@lang='eng']

# 选取 bookstore 元素下所有 book 元素,它们的 price 元素值大于 35.00
/bookstore/book[price>35.00]


# 选取 bookstore 元素中的 book 元素的所有 title 元素,且 price 元素的值大于35.00
/bookstore/book[price>35.00]/title

# 选取 bookstore 的所有子元素
/bookstore/*

#选取文档中的所有元素
//*

# 选取 html 下面任意节点的 meta 节点的所有属性
//node()/meta[]/@*

# 选取所有带有属性的 title 元素
//title[@*]

# 选取 book 元素的所有 title 和 price 元素
//book/title | // book/price

# 选取文档中的所有 title 和 price 元素
//title | //price

# 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素
//bookstore/book/title | //price

键鼠控制

import pyautogui
import pyperclip
# 每次操作停顿0.25秒
pyautogui.PAUSE = 0.25
# 鼠标移到左上角取消执行操作
pyautogui.FAILSAFE = True

# 移动到125,29位置单机
pyautogui.click(125, 29, button='left')
# 输入文本(可中文)
pyperclip.copy(txt)  # 先复制
pyperclip.copy('我的手机')  # 先复制
pyautogui.hotkey('ctrl', 'v')
# 输入内容 (仅英文)
pyautogui.typewrite("ceshi")# 直接输入,不支持中文
# 左键 双击 双击间隔0.25秒
pyautogui.click(465, 131, button='left', interval=0.25, clicks=2) #左键 双击 双击间隔0.25秒
pyautogui.hotkey('ctrl', 'v')
# 输入回车
pyautogui.press('enter')


x,y=pyautogui.position()
print x,y                  # 输出的结果是:312,198  (结果是鼠标当前位置,可以想象成以屏幕左上角为原点的第一象限)
pyautogui.size()        # 获取当前屏幕分辨率
pyautogui.moveTo(x,y,s)      #鼠标在s秒移动到(x,y),同理还有拖动方法dragT
pyautogui.scroll(x,y)      #鼠标在(x,y)滚动
pyautogui.mouseDown(x,y,button='left')     #鼠标左边按下,同理mouseUp为鼠标松开

pyautogui.dragTo(x,y[,duration=t)      #将鼠标拖动到指定x,y位置,t=动作需要的秒数
pyautogui.dragRel(x,y[,duration=t]
pyautogui.scroll()                       #正数表示向上滚动,负数表示向下滚动,

参考 1
参考 2