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

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

              

 

posted @ 2022-06-13 14:54  就不将就就  阅读(738)  评论(0编辑  收藏  举报