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

浙公网安备 33010602011771号