您现在的位置是:首页 > 技术教程 正文

【python】之selenium模块,实现Web端自动化测试!【基础篇】

admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机)

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果

一.安装环境

python+selenium+chrome

(1)python建议用python3及以上的版本

(2)selenium库这边我们使用pip接口进行安装

pip install selenium

pip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

(3)这边推荐使用chrome浏览器,使用chrome浏览器则需要对应的驱动,下载链接如下:

http://chromedriver.storage.googleapis.com/index.html

找到与浏览器相对应的版本,32位即可驱动。

二.selenium库基础函数使用

1.webdriver.Chrome()

  1. from selenium import webdriver
  2. ####实例化浏览器
  3. driver = webdriver.Chrome()

输出如下:

2.driver.get()  函数打开网页包含协议头

driver.get('https://www.baidu.com/')

3.driver.maximize_window() 函数实现最大化浏览器

4.driver.back() 函数实现后退操作

5.driver.forward() 函数实现前进操作

6.driver.refrensh() 函数实现刷新页面功能

7.driver.close() 函数实现关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)

8.driver.quit() 函数实现关闭driver对象启动的全部页面

9.driver.title 函数获取当前页面title信息

10.driver.current_url 函数获取当前页面url信息

三.selenium库定位八大方法

1.id定位方法

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. driver = webdriver.Chrome() ###实例化浏览器
  4. driver.get('https://www.baidu.com/') ###get打开浏览器
  5. element = driver.find_element(By.ID, "kw").send_keys('搜索') ###id定位方法,kw=id, 搜索为输入

 输出:

2.name定位方法

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###name定位方法 name='wd',1111为输入的内容
  6. username = driver.find_element(By.NAME, 'wd').send_keys('1111')

 输出:

3.class_name定位方法

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###class_name定位方法,class = 's_ipt',输入123456
  6. Class = driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('123456')

 

输出:

4.tag_name定位方法

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###
  6. tel = driver.find_element(By.TAG_NAME, 'input').send_keys('1111')

 一般标签重复性过高,要精确定位,都不会选择tag_name !

5.link_text定位方法,click单击打开

  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###该⽅法只针对超链接元素(a 标签),并且需要输入超链接的全部⽂本信息
  6. Text = driver.find_element(By.LINK_TEXT, '新闻').click()#

输出:

6.partial_link_text定位方法

  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###partial_link_text定位方法,click单击打开,可以使用精准或模糊匹配
  6. username = driver.find_element(By.PARTIAL_LINK_TEXT, '新闻').click()

7.Xpath定位方法

  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###Xpath定位方法,称为相对路径定位法,运用copy xpath复制相对路径
  6. username = driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('1111')

 输出:

8.CSS定位法

常用策略:
1、id 选择器
     语法:#id属性值
2、class 选择器
     语法:.class属性值(如果使⽤具有多个值的 class 属性,则需要传入全部的属性值 语法:[class="全部属性值"])
3、属性选择器
     语法1:[属性名=“属性值”]
     语法2:标签名[属性名=“属性值”]
4、标签选择器
     语法:标签名 如input,button
5、层级选择器
     父子层级关系:父层级策略 > 子层级策略 (也可以使用空格连接上下层级策略)
     祖辈后代层级关系:祖辈策略 后代策略
     提示:>与空格的区别,大于号必须为子元素,空格则不用。

  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com/')
  5. ###id属性值
  6. ID = driver.find_element(By.CSS_SELECTOR, '#kw"]').send_keys('11111')
  7. ###class属性值
  8. Class = driver.find_element_by_css_selector('[class="s_ipt"]').send_keys('1111')
  9. ###语法属性
  10. user = driver.find_element_by_css_selector('input[id="kw"]').send_keys('1111')
  11. user = driver.find_element_by_css_selector('[name="wd"]').send_keys('1111')
  12. ###语法层级选择属性
  13. user = driver.find_element_by_css_selector('#s_kw_wrap>input').send_keys('1111')
  14. user = driver.find_element_by_css_selector('#form input').send_keys('1111')
  15. driver.close()

 八大定位方法就如上所述。

四.实例演示

1.元素的操作方法

(1)、.send_keys() # 输入方法

(2)、.click() # 点击方法

(3)、.clear() # 清空方法

2.实际操作

(1)进入百度搜索(2)搜索栏输入python(3)百度一下(3)选择python百度百科进入

  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. ###进入百度搜索
  5. driver.get('https://www.baidu.com/')
  6. ###找到输入框,输入python
  7. element = driver.find_element(By.ID, "kw").send_keys('python')
  8. ###单击鼠标开始搜索
  9. element = driver.find_element(By.ID, "su").click()
  10. ###找到百度百科,单击鼠标进入
  11. username = driver.find_element(By.XPATH, '//*[@id="2"]/div/div/h3/a').click()

后续对于selenium库的更多使用,下期再继续介绍啦!

@Neng

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索