UI自动化测试(Selenium元素定位实战)

一、Selenium环境搭建

  1、进入命令符 
  2、输入pip3 install selenium 下载selenium

  3、查看浏览器的版本  (打开chrome,设置,关于chrome)

  4、淘宝源http://npm.taobao.org/mirrors/chromedriver下载版本合适的driver

   5、解压到Python目录下
        双击chromedriver.exe 看是否能打开

 

 

 

  6、进入命令
  7、进入python
  8、>>> from selenium import webdriver
      >>> driver=webdriver.Chrome()
  9、看是否能打开Chrome()
  10、driver.quit() 关闭

二、Selenium元素定位的八种方法

1、通过ID来定位(打开chrome,百度,右击点击检查,点击,将鼠标移动到需要定位的目的位置,就会显示元素的属性)

 

 

 

 

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

"""通过id来定位"""

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("Hello World")
t.sleep(5)

2、通过name来定位

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

"""通过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来定位

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

class_name来定位
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_class_name("s_ipt").send_keys("Hello World")
t.sleep(5)

4、通过xpath来定位(首先获取xpath的原始属性,定位到百度搜索输入框的元素属性后,右击该属性,点击Copy,点击Copy Xpath 即可获取)

 

 

 

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

"""xpath来定位"""
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("Hello World")
t.sleep(5)

5、通过css来定位(首先获取css的原始属性,定位到百度搜索输入框的元素属性后,右击该属性,点击Copy,点击Copy selector即可获取)

 

 

 

 

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

"""css定位"""
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_css_selector('#kw').send_keys("Hello World")
t.sleep(5)

6、LINK_TEXT用于对超链接的处理

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

"""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用于对超链接的处理

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

"""PARTIAL_LINK_TEXT"""
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_partial_link_text('学术').click()
t.sleep(5)

8、find_elements_by_tag_name多元素定位

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

"""tag_name 演示多个元素的定位"""
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
tag=driver.find_elements_by_tag_name('input')
tag[
7].send_keys('无涯教育') t.sleep(5) driver.quit()

三、元素定位方法的案例实战

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

""sina邮箱的注册信息"""
driver=webdriver.Chrome()
# 浏览器最大化
driver.maximize_window()
driver.get("https://mail.sina.com.cn/register/regmail.php")
# 邮箱地址
driver.find_element_by_class_name("inputStyle").send_keys("wuyikai")
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("15730996037")
t.sleep(3)
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import  By
import time as t

"""网易邮箱的注册信息"""
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail")
driver.find_element_by_class_name("username").send_keys("wuyikai")
t.sleep(3)
driver.find_element_by_id("password").send_keys("123456")
t.sleep(3)
driver.find_element_by_class_name("phone").send_keys("15730996037")
t.sleep(3)
driver.quit()

 

 四、结合函数对元素定位方法封装

1、ID

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

def ID(driver,content):
    return driver.find_element_by_id(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
ID(driver,"kw").send_keys('测试课程')
t.sleep(5)
driver.quit()

2、name

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

def name(driver,content):
    return driver.find_element_by_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
name(driver,"wd").send_keys("测试测试")
t.sleep(5)
driver.quit()

3、class_name

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

def className(driver,content):
    return driver.find_element_by_class_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
className(driver,"s_ipt").send_keys("测试课程")
t.sleep(5)
driver.quit()

4、xpath

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

def xPath(driver,content):
    return driver.find_element_by_xpath(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
xPath(driver,'//*[@id="kw"]').send_keys("测试课程")
t.sleep(5)
driver.quit()

5、css

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

def css_selector(driver,content):
    return driver.find_element_by_css_selector(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
css_selector(driver,'#kw').send_keys("测试课程")
t.sleep(5)
driver.quit()

6、LINK_TEXT

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

def link_text(driver,content):
    return driver.find_element_by_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
link_text(driver,'直播').click()
t.sleep(5)
driver.quit()

7、PARTIAL_LINK_TEXT

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

def PARTIAL_LINK_TEXT(driver,content):
    return driver.find_element_by_partial_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
PARTIAL_LINK_TEXT(driver,'直播').click()
t.sleep(5)
driver.quit()

8、tag_name

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

def tagsName(driver,content,index):
    return driver.find_elements_by_tag_name(content)[index]
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tagsName(driver,'input',7).send_keys('测试课程')
t.sleep(5)
driver.quit()

五、webdriver的浏览器属性的方法应用

  获取测试地址:current_url

  获取页面源码:Page_source

  获取当前的title:Title

  前进和后退:back()   forward()

  关闭:exit()   close()

  加载测试地址:get()

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

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

 

posted @ 2021-08-09 17:20  wuyikai  阅读(415)  评论(0)    收藏  举报