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)


相关文章
|
18天前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
5天前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
5天前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
21 3
|
18天前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
12天前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
13天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
13 0
|
27天前
|
Web App开发 Java 测试技术
自动化测试的新篇章:使用Selenium WebDriver进行高效测试
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试犹如一艘航船,带领着质量保证团队驶向效率与精准的彼岸。本文将揭开Selenium WebDriver的神秘面纱,通过实际案例引导您掌握这一强大的自动化测试工具。我们将从Selenium WebDriver的基础概念出发,逐步深入到代码示例,最后探讨其在现实项目中的应用场景和优势,旨在为您的软件测试之旅提供清晰的指南。
|
27天前
|
Web App开发 测试技术 持续交付
探索自动化测试:以Selenium和Python为例
【8月更文挑战第31天】自动化测试在现代软件开发中扮演着不可或缺的角色。本文将通过一个简化的示例,展示如何使用Selenium和Python进行Web应用的自动化测试。我们将从安装必要的工具开始,逐步构建一个简单的测试脚本,并执行它来验证其功能。通过这个过程,我们旨在揭示自动化测试的价值,并激励读者深入探索这一领域。
|
27天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【8月更文挑战第31天】在软件开发的世界中,自动化测试是提高产品质量和开发效率不可或缺的一环。本文将深入探讨Selenium这一强大的自动化测试工具,从其架构、优势到实战应用,一步步揭示如何利用Selenium框架提升软件测试的效率和准确性。通过具体的代码示例,我们将展示Selenium如何简化测试流程,帮助开发者快速定位问题,确保软件的稳定性和可靠性。无论你是测试新手还是资深开发者,这篇文章都将为你打开一扇通往高效自动化测试的大门。
|
27天前
|
Java 测试技术 API
探索自动化测试的奥秘:从Selenium到Appium
【8月更文挑战第31天】本文旨在引导读者理解自动化测试的重要性,并逐步深入介绍如何利用Selenium和Appium这两个强大的工具来提升测试效率和质量。文章不仅分享理论知识,还通过具体代码示例,展示如何在Web应用和移动应用测试中实施自动化策略。