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

  





  

  

  


  
原文地址:https://www.cnblogs.com/w770762632/p/8638654.html