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

      

    
    



      

      

      


      
  • 相关阅读:
    1.5环境变量与文件查找(学习过程)
    1.4程序的机器级表示(学习过程)
    1.3信息的表示和处理(学习过程)
    hdu4706
    【多重背包】Transport Ship
    【动态规划】Mathematical Curse
    【动态规划】subsequence 1
    学习线性基
    学习秦九韶算法
    学习裴蜀定理
  • 原文地址:https://www.cnblogs.com/w770762632/p/8638654.html
Copyright © 2020-2023  润新知