selenium学习

本文介绍了Selenium作为浏览器自动化工具的基本用法,包括环境安装、浏览器创建、元素定位、节点交互、执行JavaScript、获取页面源码数据以及无头浏览器的使用。特别强调了规避网站检测的重要技巧,如模拟登录、处理验证码以及Cookie操作。
摘要由CSDN通过智能技术生成

简介

  • selenium
    • 是一种浏览器自动化的工具,所谓的自动化是指,我们可以通过代码的形式制定一系列的行为动作,然后执行代码,这些动作就会同步触发在浏览器中。

环境安装

  • 下载安装selenium:pip install selenium
  • 下载浏览器驱动程序:
    • http://chromedriver.storage.googleapis.com/index.html
  • 查看驱动和浏览器版本的映射关系:
    • http://blog.csdn.net/huilan_same/article/details/51896672

效果展示

from selenium import webdriver
from time import sleep

# 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的
driver = webdriver.Chrome(r'./chromedriver')
# 用get打开百度页面
driver.get("http://www.baidu.com")
# 查找页面的“设置”选项,并进行点击
driver.find_element_by_xpath('//*[@id="s-usersetting-top"]').click()
sleep(2)
# # 打开设置后找到“搜索设置”选项,设置为每页显示50条
driver.find_elements_by_link_text('搜索设置')[0].click()
sleep(2)

# 选中每页显示50条
m = driver.find_element_by_xpath('//*[@id="nr_3"]').click()
sleep(2)

# 点击保存设置
driver.find_element_by_xpath('//*[@id="se-setting-7"]/a[2]').click()
sleep(2)

# 处理弹出的警告页面   确定accept() 和 取消dismiss()
driver.switch_to_alert().accept()
sleep(2)
# 找到百度的输入框,并输入 美女
driver.find_element_by_id('kw').send_keys('美女')
sleep(2)
# 点击搜索按钮
driver.find_element_by_id('su').click()
sleep(2)
# 在打开的页面中找到“Selenium - 开源中国社区”,并打开这个页面
driver.find_element_by_xpath('//*[@id="1"]/div/h3/a').click()
sleep(3)

# 关闭浏览器
driver.quit()

浏览器创建

  • Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等.另外,也支持无界面浏览器。

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

元素定位

  • webdriver 提供了一系列的元素定位方法,常用的有以下几种:

  • find_element_by_id()
    find_element_by_name()
    find_element_by_class_name()
    find_element_by_tag_name()
    find_element_by_link_text()
    find_element_by_xpath()
    find_element_by_css_selector()
    

节点交互

  • Selenium可以驱动浏览器来执行一些操作,也就是说可以让浏览器模拟执行一些动作。比较常见的用法有:输入文字时用send_keys()方法,清空文字时用clear()方法,点击按钮时用click()方法。

执行js

对于某些操作,Selenium API并没有提供。比如,下拉进度条,它可以直接模拟运行JavaScript,此时使用execute_script()方法即可实现。

from selenium import webdriver
from time import sleep
#1.创建一个浏览器对象,executable_path指定当前浏览器的驱动程序
#注意:我当前是mac系统,驱动程序也是mac版本的,如果是window系统注意更换驱动
bro = webdriver.Chrome(executable_path='./chromedriver')
#2.浏览器的请求发送
bro.get('https://www.jd.com/')
#3.标签定位:调用find系列的函数进行标签定位
search_box = bro.find_element_by_xpath('//*[@id="key"]')
#4.节点交互
search_box.send_keys('mac pro m1')#向指定标签中录入内容
sleep(2)
btn = bro.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
btn.click() #点击按钮
sleep(2)
#js注入
bro.execute_script('document.documentElement.scrollTo(0,2000)')
sleep(5)
#关闭浏览器
bro.quit()
  • 思考:在爬虫中为什么需要使用selenium?selenium和爬虫之间的关联是什么?

    • 便捷的爬取动态加载数据(可见即可得)

      • #获取前5页的企业名称
        from selenium import webdriver
        import time
        from lxml import etree
        
        bro = webdriver.Chrome(executable_path='./chromedriver')
        url = 'http://scxk.nmpa.gov.cn:81/xk/'
        bro.get(url=url)
学习Selenium是非常有用的,因为它是一个流行的自动化测试工具,用于Web应用程序的测试。以下是学习Selenium的一些建议: 1. 学习基本的Web技术:在开始学习Selenium之前,了解HTML、CSS和JavaScript等基本的Web技术是很重要的。这将帮助你理解Web应用程序的结构和元素。 2. 了解Selenium的基本概念:熟悉Selenium的基本概念,如WebDriver、WebElement、定位元素等。理解这些概念将帮助你编写更好的自动化测试脚本。 3. 学习Selenium的API文档:Selenium有多种支持不同编程语言的API,如Java、Python、C#等。选择一种你熟悉或感兴趣的语言,并阅读相关的API文档,了解如何使用Selenium进行自动化测试。 4. 编写自动化测试脚本:通过实践编写自动化测试脚本来巩固所学知识。尝试模拟用户在Web应用程序中的操作,如点击按钮、填写表单、验证页面元素等。 5. 学习定位元素的方法:了解如何使用Selenium中提供的方法来定位页面上的元素,如ID、类名、标签名、CSS选择器、XPath等。熟悉这些方法将帮助你准确定位和操作页面元素。 6. 学习处理弹窗和框架:了解如何处理弹窗和在页面中嵌入的框架。Selenium提供了方法来切换和操作这些弹窗和框架。 7. 学习测试框架和报告生成:掌握使用测试框架(如JUnit、TestNG等)来组织和运行测试脚本,并学习如何生成测试报告,以便更好地管理和分析测试结果。 8. 参加培训课程或在线教程:有很多培训课程和在线教程可以帮助你学习Selenium。参加这些课程或自学教程,可以加快你的学习进度并获得更深入的理解。 记住,Selenium是一个不断发展的工具,所以要保持学习和跟进最新的更新和功能。通过实践和不断练习,你将成为一个熟练的Selenium测试工程师。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值