python元素定位_python+selenium元素定位

1.打开浏览器

1.打开Firefox浏览器

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

2.打开Ie或Chrome浏览器 -->先将驱动文件放到python根目录

1337528-20180324131118174-1036088781.png

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()

-

1337528-20180324134238875-894937363.png

# 用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()

1337528-20180324134719968-133170096.png

1337528-20180324134735650-1116442290.png

3.通过class定位 find_element_by_class_name()

1337528-20180324134851913-838136988.png  

1337528-20180324135045409-353314165.png

4.通过tag定位   find_element_by_tag_name()

这种方法很少用到,一般的标签都不唯一

5通过link定位,find_element_by_link_text()

6. 通过partial link定位  find_element_by_partial_link_text()

1337528-20180324135801205-254295620.png

1337528-20180324135812486-423573073.png

8,通过xpath定位 find_element_by_xpath("//input[@id='kw']").send_keys("123")

//表示当前页面某个目录下,input 表示定位元素的标签名,[@id=‘kw’] 表示这个元素的id 属性值等于kw;

如果不想指定标签名也可以用星号(*)代替,.表示当前节点。

1337528-20180324150426612-1567830677.png

1337528-20180324150422804-693069994.png

9,通过css定位  find_element_by_css_selector("#kw").send_keys("123")

css教程   http://www.w3school.com.cn/css/css_positioning.asp

如何才能知道该元素的属性值是不是唯一的呢?千万不要在代码里面一顿乱写,然后去运行,发现各种找不到元素

切换到HTML界面,搜索框输入元素对应属性值,看是不是唯一的

1337528-20180324154402576-148343050.png

Selenium提供了八种单数定位,同样也有八种复数定位

1337528-20180324154048600-584027113.png

有的Class属性有空格怎么去定位?

class属性有空格是多重属性,取其中一个就行

4,常规操作

#coding:utf-8

from selenium importwebdriver

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() 鼠标悬停

1337528-20180324155231159-1131588415.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值