selenium自动化详解

简介: selenium自动化详解

一 . 基本使用

# pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
from selenium import webdriver  # # 驱动浏览器
from selenium.webdriver.common.by import By  #选择器
from selenium.webdriver.common.keys import Keys   #按键
from selenium.webdriver.support.wait import WebDriverWait  #等待页面加载完毕,寻找某些元素
from selenium.webdriver.support import expected_conditions as EC  ##等待指定标签加载完毕
# 1,驱动浏览器
browser = webdriver.Chrome()  
# 2,请求页面   --返回的数据封装在了browser对象里,不需要额外的变量接收
browser.get('https://www.baidu.com')  #调用浏览器驱动访问站点
# 3,拿到输入框
text_input = browser.find_element(By.ID,'kw') 
# 4,向输入框中写入内容
text_input.send_keys('爬虫')  
# 5,按下回车按钮 
text_input.send_keys(Keys.ENTER)
# # 等待事件 -- 怕网速慢
wait = WebDriverWait(browser,100)  # 参数1:浏览器对象 参数2:时间(秒)
# # 等待某元素出现 presence_of_element_located()传入的参数格式是一个元组
wait.until(EC.presence_of_element_located((By.ID,'result_tts_player')))
print(browser.current_url)  #查看url
print(browser.get_cookies())  #查看cookie
print(browser.page_source)  #查看源代码
browser.close()  # 关闭浏览器

二,声明不同浏览器对象

from selenium import webdriver
browser = webdriver.Chrome()
browser = webdriver.Firefox()
browser = webdriver.PhantomJS()
browser = webdriver.Safari()

三,访问页面

from selenium import webdriver
# 声明Chrome浏览器对象
browser = webdriver.Chrome()
# 请求页面 
browser.get('https://www.taobao.com')
print(browser.page_source)  # 获取网页源代码
browser.close()  # 关闭当前页面

四,查找元素

查找方法

  • find_element_by_id 根据id属性来定位
  • find_element_by_name 根据name元素来定位
  • find_element_by_xpath 根据xpath语法来定位
  • find_element_by_tag_name 根据标签名来定位
  • find_element_by_class_name 根据class的名字来定位
  • find_element_by_css_selector 根据css选择器来定位
  • 以下两种方法都是用来的定位超链接的,也就是对应html页面中的a标签,括号里传入的值就是a标签中的超链接文字
  • 两者的区别在于一个是完整的超链接文字,一个是可以只写部分超链接文字
  • find_element_by_link_text 需要完整的超链接文字
  • find_element_by_partial_link_text 可以只写部分超链接文字
源码经过修改之后的写法
  • find_element(By.ID,“id”) 根据id属性来定位
  • find_element(By.NAME,“name”) 根据name元素来定位
  • find_element(By.XPATH,“xpath语法”) 根据xpath语法来定位
  • find_elemnt(By.TAG_NAME,“input”) 根据标签名来定位
  • find_element(By.CLASS_NAME,“classname”) 根据class的名字来定位
  • find_element(By.CSS_SELECTOR,“#id”) 根据css选择器来定位
  • find_element(By.LINK_TEXT,“text”) 根据文本属性

1,单个元素

from selenium import webdriver 
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element(By.LINK_TEXT,"新闻").click() # 通过.click()点击目标链接
from selenium import webdriver 
from selenium.webdriver.common.by import By  #选择器
browser = webdriver.Chrome()
browser.get('https://taobao.com')
#通过元素ID查找 
# by_id = browser.find_element(By.ID,'q')
# by_id.send_keys('美食')
# print(by_id)
# # 通过css选择器查找
# css_select = browser.find_element(By.CSS_SELECTOR,'#q')
# css_select.send_keys('美食')
# # 通过xpath查找  
# xpath = browser.find_element(By.XPATH,'//*[@id="q"]')
# xpath.send_keys('美食')
# browser.close()

2,多个元素

  • find_elements(By.ID,“id”) 根据id属性来定位
  • find_elements(By.NAME,“name”) 根据name元素来定位
  • find_elements(By.XPATH,“xpath语法”) 根据xpath语法来定位
  • find_elemnts(By.TAG_NAME,“input”) 根据标签名来定位
  • find_elements(By.CLASS_NAME,“classname”) 根据class的名字来定位
  • find_elements(By.CSS_SELECTOR,“#id”) 根据css选择器来定位
  • find_elements(By.LINK_TEXT,“text”) 根据文本属性
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
elements = browser.find_elements(By.CSS_SELECTOR,'.service-bd li')   
print(elements)  # 以列表形式返回
for i in elements:
    print(i)


相关文章
|
27天前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
78 8
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
130 4
|
7天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
54 19
Selenium IDE:Web自动化测试的得力助手
|
9天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
83 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
488 5
|
2月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
1月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
40 0
|
2月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
3月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。