selenium是Python的第三方库,使用前需要安装。但是如果你使用的是anaconda,就可以省略这个步骤,为啥?自带,任性。

安装命令:

pip install selenium

(一)使用selenium打开指定网站,这里以淘宝为例。

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 25 10:12:39 2018
@author: brave_man
email: 1979887709@qq.com
"""

from selenium import webdriver
from time import sleep

b = webdriver.Chrome()
b.get("http://www.taobao.com")

elem = b.find_element_by_id('q')
elem.send_keys('iphone')
sleep(3)
elem.clear()
elem.send_keys("ipad")
button = b.find_element_by_class_name("btn-search")
button.click()
sleep(5)
b.close()

(二)简单的拖拽动作(用于验证码识别)

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 25 15:00:10 2018
@author: brave_man
email: 1979887709@qq.com
""" from selenium import webdriver
from selenium.webdriver import ActionChains b = webdriver.Chrome()
url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
b.get(url)
b.switch_to.frame('iframeResult')
sou = b.find_element_by_css_selector('#draggable')
tar = b.find_element_by_css_selector('#droppable')
actions = ActionChains(b)
actions.drag_and_drop(sou, tar)
actions.perform()

(三)在爬虫中,可能会由于网速等外界因素的影响,造成获取网页元素失败,这里介绍两种等待模式

1.  隐式等待:webdriver没有在DOM中找到想要的元素,在等待指定的时间后,会抛出一个找不到指定元素的异常。在网速特别慢的情况可以使用

from selenium import webdriver

b = webdriver.Chrome()
b.implicitly_wait(10)
b.get("https://www.zhihu.com/explore")
elem = b.find_element_by_class_name('zu-top-add-question')
print(elem)

2. 显式等待

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC b = webdriver.Chrome()
#b.implicitly_wait(10)
b.get("https://taobao.com/")
#elem = b.find_element_by_class_name('zu-top-add-question')
b_wait = WebDriverWait(b, 10)
elem = b_wait.until(EC.presence_of_all_elements_located((By.ID, 'q')))
button = b_wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-search')))
print(elem, button)

(四)前进后退

from selenium import webdriver
from time import sleep b = webdriver.Chrome()
b.get("http://www.baidu.com")
sleep(1)
b.get("http://www.sina.com.cn")
sleep(1)
b.back()
sleep(3)
b.forward()
sleep(3)
b.close()

更多内容可以参考文档:http://selenium-python-zh.readthedocs.io/en/latest/index.html

python3使用selenium + Chrome基础操作代码的更多相关文章

  1. 【ADO.NET基础-GridView】GridView的编辑、更新、取消、删除以及相关基础操作代码

    代码都是基础操作,后续功能还会更新,如有问题欢迎提出和提问....... 前台代码: <asp:GridView ID=" OnRowDataBound="GridView1 ...

  2. selenium 浏览器基础操作(Python)

    想要开始测试,首先要清楚测试什么浏览器.如何为浏览器安装驱动,前面已经聊过. 其次要清楚如何打开浏览器,这一点,在前面的代码中,也体现过,但是并未深究.下面就来聊一聊对浏览器操作的那些事儿. from ...

  3. 深入selenium模块基础操作

    selenium模块的基本操作 一.模拟浏览器 ​ 谷歌.Firefox.Safari等浏览器 browser=webdriver.Chrome() browser=webdriver.Firefox ...

  4. 5月25号开学! 第13期《python3自动化测试selenium+接口》课程,python零基础也能学

    2019年 第13期<python3自动化测试selenium+接口>课程,5月25号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学 本期上课时间:5月25号-7月28号,每周 ...

  5. Selenium +Chrome浏览器如何模拟手机操作

    Selenium +Chrome浏览器如何模拟手机操作 进入手机模式 打开谷歌浏览器,按F12,进入开发者模式,点击Toggle device toolbar,进入手机模式 设置Chrome的手机模式 ...

  6. Python3 + selenium + Chrome浏览器(webdriver.Chrome()报错)

    Python3 + selenium + Chrome浏览器 Error: selenium.common.exceptions.WebDriverException: Message: 'chrom ...

  7. python下selenium模拟浏览器基础操作

    1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/ge ...

  8. Centos7安 装python3+Selenium+chrome+chromedriver

    Centos7安装python3+Selenium+chrome+chromedriver详细python2和python3共存,Selenium错误的处理更新Centos源 wget -O /etc ...

  9. selenium更加高效的PageObject 对象操作代码

    重新封装了的selenium代码,包括click事件,sendkeys事件,select事件,以及对readonly日期控件的处理 package com.common; import java.ut ...

随机推荐

  1. virualbox 虚拟机管理

    虚拟机调换后提示UUID一致,需要重新生成新的虚拟机文件的UUID,使用如下命令: D:\Program Files\Oracle\VirtualBox>VBoxManage internalc ...

  2. Mybatis源码解析-MapperRegistry代理注册mapper接口

    知识储备 SqlsessionFactory-mybatis持久层操作数据的前提,具体的解析是通过SqlSessionFactoryBean生成的,可见>>>Spring mybat ...

  3. javaScript之变量与数据类型

    http://www.cnblogs.com/yuanchenqi/articles/5980312.html 在了解变量之前,我们首先学习JavaScript的引入方式 JavaScript的引入方 ...

  4. #20 Python文件

    前言 前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛.在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Pytho ...

  5. java开发各层对象含义

    综述 java的几种对象(PO,VO,DAO,BO,POJO)解释: 一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中 ...

  6. WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决

    背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...

  7. 如何把ASP.NET MVC项目部署到本地IIS上

    默认情况下,在VisualStudio中开发网站,会运行在IISExpress中,如果想把网站部署到本地的IIS服务器上该怎么办呢? 一.首先,以管理员身份运行VisualStudio,否则在修改项目 ...

  8. oracle listener.ora文件配置

    # listener.ora Network Configuration File: /oracleDB/product//db_1/network/admin/listener.ora # Gene ...

  9. ASP.NET资源大全-知识分享

    API 框架 NancyFx:轻量.用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台.官网 ASP.NET WebAPI:快捷创建 HTTP 服务 ...

  10. 如何用STAR法则来回答「宝洁八大问」

    掌握宝洁八大问,其实就是掌握了半个求职季 每年高峰期,很多同学会问到关于宝洁八大的问题,如何准备.怎么讲故事.如何体现自己的特点等等.针对同学们的提问,分享一篇关于如何回答好宝洁八大问的文章,希望能够 ...