selenium初探selenium初探

selenium初探

selenium简介与安装

简介

selenium是一个网站的自动化测试库,但由于其具有大量的自动化库而且可以调用浏览器,常常被用于爬虫技术。也正是因为其是调用浏览器的,这几乎成了一个无解的爬虫。在神经网络领域需要大量的数据集,爬虫是一种快速获得数据的方法,这也正是我学习这个库的动机

安装

selenium安装

使用pip install -U selenium即可

Diver安装

selenium要调用各种浏览器需要对应的浏览器driver,我将使用chrome测试,测试成功后转为无界面的PhontomJS。使用Chrome需要将对应的driver下载后复制到Python的安装文件夹下,使用PhontomJS则直接将.exe文件复制到Python安装文件夹下即可

selenium基本操作

浏览器操作

导入库

from selenium import webdriver

打开浏览器

driver = webdriver.PhantomJS() #打开PhantomJS浏览器
driver = webdriver.Chrome() #打开Chrome浏览器

访问网页

driver.get(url)

访问网址为url的网站,若使用Chrome将看到打开的浏览器跳转到指定的url

交互操作

获得表单元素

name_field = driver.find_element_by_id("username")
submit_button = driver.find_element_by_tag_name("button")
submit_button = driver.find_elements_by_link_text("教务系统")

根据元素id,类型和超链接名称获取元素,除了以上的方法,还有

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

还有获取多个元素的方法:

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

输入表单数据

name_field = driver.find_element_by_id('loginName')
name_field.send_keys('...')

获取元素后使用send_keys()方法输入数据

点击按钮或超链接

submit_button = driver.find_element_by_id('loginAction')
submit_button.click()

获取元素后使用click()方法点击按钮

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏随心DevOps

[多图] DevOps 也要懂点 Excel

本文涉及一些简单的 Excel 的操作,效果拔群 ---- 步骤: 获取 Docker 版本,并生成一个 csv 文件 导入 CSV 到 Excel 并简单清洗...

3596
来自专栏DannyHoo的专栏

加载图片的两个方法:imageName: imageWithContentOfFile:

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

2061
来自专栏极乐技术社区

极乐问答No.2 | 微信小程序开发40问

导语 微信小程序开发者和开发需求者必读,内容涵盖小程序开发实战需要注意的40个技术点,供大家参考: ? 问答 Q Q1:为什么脚本内不能使用window等对象 ...

2758
来自专栏编程

AngularJS的数据绑定功能展示

在AJAX型的单页应用普及之前,类似Rails、PHP和JSP之类的平台都可以帮助我们创建用户界面(UI),它们会把HTML字符串和数据混合起来,然后再发送给用...

2008
来自专栏河湾欢儿的专栏

vuex(2)如何传值

第四步 (将发送来的‘me’事件来处理 将vuex里的state里的good来改变值) mutations.js

3683
来自专栏大前端开发

微信小程序新增拖动组件:movable-view

小程序在520节日前夜,让程序员们又躁动了一把,更新了一些很诱人的功能,如内容转发API,iBeacon API,振动API,屏幕亮度调节API等,也增强了地图...

1424
来自专栏Core Net

C# 处理Word自动生成报告 一、概述

3747
来自专栏進无尽的文章

兼容-记录Xcode8.0恢复插件全过程

Xcode 的插件大大丰富了 Xcode 的功能,而且有了 Alcatraz ,插件的管理也非常容易,但是有个非常恼人的问题:一旦升级 Xcode ,插件就失效...

1542
来自专栏BestSDK

开发微信小程序,必知的40个小技巧

微信小程序开发者和开发需求者必读的40条技巧分享: Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是在JsCore中运行,JsCore是一个没有...

5563
来自专栏Debian社区

Tmux 快速教程:快捷键和配置

Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一...

1802

扫码关注云+社区

领取腾讯云代金券