ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python+selenium八大元素定位及元素定位封装

2022-06-13 15:00:56  阅读:180  来源: 互联网

标签:定位 name python 元素 driver send element sleep find


1、元素定位的8个方式(属性)(7个单个元素+1个多个元素)

from selenium import  webdriver
     from selenium.webdriver.common.by import By
     import time as t

      (1)  ID="id"

    '''通过ID来定位'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     driver.find_elements_by_id('kw').send_keys("hello world")
     t.sleep(5)

  

             

              (2)NAME="name"

   '''通过name来定位'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     driver.find_element_by_name('wd').send_keys("hello world")
     t.sleep(5)

          (3)CLASS_NAME="class_name"

'''通过class_nam来定位'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     driver.find_element_by_class_name('s_ipt').send_keys("hell world")
     t.sleep(5)

          (4)XPATH=''xpath"   

 '''通过xpath的定位方式'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     #先定位到需要的代码行处,鼠标右键copy——>copy Xpath
     driver.find_element_by_xpath('//*[@id="kw"]').send_keys("hell world")
     t.sleep(5)

          (5)CSS_SELECTOR="css_selector"

'''通过css_selector来定位'''
     '''获取的方法是find_elements_by_css_selector()'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     #先定位到需要的代码行处,鼠标右键copy——>copy css_selector
     driver.find_element_by_css_selector('#kw').send_keys("hell world")
     t.sleep(5)

           (6)LINK_TEXT="link_text"

   driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     driver.find_element_by_link_text('直播').click()
     t.sleep(5)

          (7)PARTIAL_LINK_TEXT="partial_link_text"

     '''通过PARTIAL_LINK_TEXT来定位(模糊定位)'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     driver.find_element_by_partial_link_text('播').click()
     t.sleep(5)

           (8)TAG_NAME="tag-name"(多个元素)

'''通过tag_name来定位(多个元素定位的方式)'''
     driver=webdriver.Chrome()
     driver.get("http://www.baidu.com")
     tag=driver.find_elements_by_tag_name('input')
     tag[7].send_keys('hello world')
     t.sleep(5)
     driver.quit()

               

2、元素定位方法的实战案例(新浪邮箱)

 '''新浪邮箱sina email'''
     driver=webdriver.Chrome()
     driver.get('https://mail.sina.com.cn/')
     # 输入邮箱
     driver.find_element_by_id('freename').send_keys('lyl.@163.com')
     t.sleep(5)
     # 输入密码
     driver.find_element_by_id("freepassword").send_keys('123456')
     t.sleep(5)

              

 '''sina邮箱的注册信息'''
     driver=webdriver.Chrome()
     '''浏览器最大化'''
     driver.maximize_window()
     driver.get('https://mail.sina.com/register/regmail.php')
     #邮箱地址
     driver.find_element_by_name('email').send_keys('lyl')
     t.sleep(3)
     #密码
     driver.find_element_by_name('psw').send_keys('123456')
     t.sleep(3)
     #确认密码
     driver.find_element_by_name('npsw').send_keys('123456')
     t.sleep(3)
     #手机号
     driver.find_element_by_name('phonenumber').send_keys(17485236987)
     t.sleep(3)
     #程序进程结束,退出
     driver.quit()
     #程序退出
     #driver.close()

            

 

3、函数对元素定位方法的封装

'''使用函数让代码更优雅(封装代码)'''
     def ID(driver,content):
         return driver.find_element_by_id(content)
     def name(driver,content):
         return driver.find_element_by_name(content)
     def className(driver,content):
         return driver.find_element_by_class_name(content)
     def Xpath(driver,content):
         return driver.find_element_by_xpath(content)
     def LinkText(driver,content):
         return driver.find_element_by_link_text(content)
     def cssSelector(driver,content):
         return driver.find_element_by_css_selector(content)
     def partialLinkText(driver,content):
         return driver.find_element_by_partial_link_text(content)
     def tagsName(driver,content,index):
         return driver.find_elements_by_tag_name(content)[index]

     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     #ID(driver,'kw').send_keys('hello')
     #name(driver,'wd').send_keys('hehe')
     #className(driver,'s_ipt').send_keys('wowo')
     #cssSelector(driver,'#kw').send_keys('wowo')
     #Xpath(driver,'//*[@id="kw"]').send_keys('wowo')
     #LinkText(driver,'直播').click()
     #partialLinkText(driver,'播').click()
     tagsName(driver,'input',7).send_keys('tags name')
     t.sleep(5)
     driver.quit()

              

4、webdriverl浏览器属性的方法应用

   '''webdriver操作浏览器的属性'''
     driver=webdriver.Chrome()
     driver.get('http://www.baidu.com')
     #获取当前地址current_url
     print('获取当前的地址:',driver.current_url)
     #获取当前页面的标题title
     print('获取title:',driver.title)
     #获取当前页面的资源page_source
     print('获取当前页面的资源:',driver.page_source)
     t.sleep(5)
     driver.get('https://www.sina.com.cn/')
     t.sleep(5)
     #前进
     driver.forward()
     t.sleep(5)
     #后退
     driver.back()
     t.sleep(5)
     #获取执行的浏览器name
     print('获取执行的浏览器:',driver.name)
     driver.quit()

              

 

标签:定位,name,python,元素,driver,send,element,sleep,find
来源: https://www.cnblogs.com/ilyl/p/16370843.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有