NO 2,人生苦短,我学python之python+selenium元素定位
1.打开浏览器
1.打开Firefox浏览器
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
2.打开Ie或Chrome浏览器 -->先将驱动文件放到python根目录
from selenium import webdriver
driver = webdriver.Ie()
# driver = webdriver.Chrome() #打开谷歌浏览器
driver.get("https://www.baidu.com")
取消Ie浏览器保护模式
2.操作浏览器
1,打开百度
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("https://www.baidu.com/")
driver.maximize_window()
2,休眠五秒后,再打开博客
import time
time.sleep(5)
driver.get("https://www.cnblogs.com/")
3,点浏览器左箭头键,返回上页
time.sleep(5)
driver.back()
4.点浏览器右箭头,切换下一页
time.sleep(5)
driver.forward()
5.刷新浏览器
driver.refresh()
6.退出浏览器
# driver.close() # 关闭当前窗口
driver.quit() # 关闭浏览器,清空临时文件
3、元素定位
1.通过id定位 find_element_by_id()
-
# 用firebug通过查看页面元素,找到搜索输入框id属性值,输入关键字搜索
driver.find_element_by_id(“kw”).send_keys(u“为中华之崛起而读书")
# 用firebug通过查看页面元素,找到搜索按钮id属性值,然后click点击
driver.find_element_by_id("su").click()
send_keys() :输入框输入字符串
click() :鼠标点击事件
注意:senekeys输入中文时,需在字符串前面加u(unicode编辑)
2.通过name定位 find_element_by_name()
3.通过class定位 find_element_by_class_name()
4.通过tag定位 find_element_by_tag_name()
这种方法很少用到,一般的标签都不唯一
5通过link定位,find_element_by_link_text()
6. 通过partial link定位 find_element_by_partial_link_text()
8,通过xpath定位 find_element_by_xpath("//input[@id='kw']").send_keys("123")
//表示当前页面某个目录下,input 表示定位元素的标签名,[@id=‘kw’] 表示这个元素的id 属性值等于kw;
如果不想指定标签名也可以用星号(*)代替,.表示当前节点。
9,通过css定位 find_element_by_css_selector("#kw").send_keys("123")
css教程 http://www.w3school.com.cn/css/css_positioning.asp
如何才能知道该元素的属性值是不是唯一的呢?千万不要在代码里面一顿乱写,然后去运行,发现各种找不到元素
切换到HTML界面,搜索框输入元素对应属性值,看是不是唯一的
Selenium提供了八种单数定位,同样也有八种复数定位
有的Class属性有空格怎么去定位?
class属性有空格是多重属性,取其中一个就行
4,常规操作
# coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() url = "http://mail.126.com/" driver.get(url) # 切换iframe driver.switch_to_frame("x-URS-iframe")
1.clear()清空输入框
# 清空输入框信息
driver.find_element_by_name("email").clear()
2,send_keys()输入文本信息
driver.find_element_by_name("password").send_keys("123")
3,click()模拟单击鼠标
driver.find_element_by_id("dologin").click()
5,鼠标事件
from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
double_click() 双击
drag_and_drop(source, target)拖动
move_to_element() 鼠标悬停