from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #ActionChains鼠标操作类
from selenium.webdriver.common.keys import Keys #keys类操作 # 打开浏览器:
browser = webdriver.Chrome() # # 若未配置环境变量:
# path = r'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
# browser = webdriver.Chrome(executable_path = path) # 在指定时间范围等待:
browser.implicitly_wait() # 设置超时
browser.set_page_load_timeout()
browser.set_script_timeout() # 打开url:
browser.get(r"http://www.你的网站.com") # 前进/后退
browser.forward()
browser.back() # 刷新
browser.refresh() # 将浏览器最大化
browser.maximize_window() # 将设置浏览器为宽480,高800显示'
browser.set_window_size(, ) # 关闭浏览器
browser.quit() # 关闭标签
browser.close() '''''
获取浏览器窗口相关信息
browser.title # 当前页面标题
browser.name # 浏览器名
browser.current_url # 返回当前页面url
browser.window_handles # 返回当前浏览器的所有窗口
browser.current_window_handle # 返回当前浏览器的窗口句柄
''' # 跳转到其他标签页
window = browser.window_handles
browser.switch_to_window(window[]) # 选择窗口
browser.switch_to_window('window_name') # 截取当前显示的页面并保存
browser.get_screenshot_as_file(r'd:\backup\140591\桌面\首页图片\test.png') # 定位元素
# 需要先分析源码
text_username = browser.find_element_by_name('username')
text_password = browser.find_element_by_name('password')
form_login = browser.find_element_by_name('formlogin')
# 也可以使用其他方法如xpath,注意转义符
text_username = browser.find_element_by_xpath('//input[@name = \'username\']')
'''''
所有相关方法:
find_element(by='id', value=None)
find_element_by_class_name(name)
find_element_by_css_selector(css_selector)
find_element_by_id(id)
find_element_by_link_text(link_text)
find_element_by_name(name)
find_element_by_partial_link_text(link_text)
find_element_by_tag_name(name)
find_element_by_xpath(xpath)
element后加s则返回一组对象
''' #-----------------------WebElement相关----------------------- # 输入值
# send_keys也可以用于上传文件:send_keys('d:/abc.txt')
text_username.send_keys("你的用户名_错误")
text_password.send_keys("你的密码") # 清空输入框,换成正确的用户名
text_username.clear()
text_username.send_keys("你的用户名_正确") # 提交表单
form_login.submit() '''''
相关方法
clear() # 清除元素的内容
send_keys() # 在元素上模拟按键输入
click() # 单击元素
submit() # 提交表单
size() # 返回元素的尺寸
text() # 获取元素的文本
get_attribute(name) # 获得属性值
is_displayed() # 设置该元素是否用户可见
''' #-------------------alert/confirm/prompt对话框处理------------------- '''''
switch_to_alert() # 用于获取网页上的警告信息。
text # 返回 alert/confirm/prompt 中的文字信息。
accept() # 点击确认按钮。
dismiss() # 点击取消按钮,如果有的话。
send_keys() # 输入值,这个alert\confirm没有对话框就不能用了,不然会报错。
''' #-----------------------下拉框处理-----------------------
# 二次定位
# driver.find_element_by_xx('xx').find_element_by_xx('xx').click() #先定位到下拉框
m=driver.find_element_by_id("ShippingMethod")
#再点击下拉框下的选项
m.find_element_by_xpath("//option[@value='10.69']").click() #-----------------------cookie处理-----------------------
'''''
get_cookies() # 获得所有cookie信息
get_cookie(name) # 返回特定name 有cookie信息
add_cookie(cookie_dict) # 添加cookie,必须有name 和value 值
delete_cookie(name) # 删除特定(部分)的cookie信息
delete_all_cookies() # 删除所有cookie信息
''' #-----------------------文件上传-----------------------
# 定位上传按钮,添加本地文件
# driver.find_element_by_xx('xx').send_keys('d:/abc.txt')
driver.find_element_by_name("file").send_keys('D:\\selenium_use_case\upload_file.txt') #-----------------------文件下载-----------------------
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click() #-----------------------Keys类键盘操作-----------------------
from selenium.webdriver.common.keys import Keys # element.send_keys(...),下同
'''''
send_keys(Keys.BACK_SPACE) # 返回键
send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
''' # ----------------ActionChains类鼠标操作--------------------
from selenium.webdriver.common.action_chains import ActionChains # 右键单击
ActionChains(browser).context_click(text_username).perform()
# 双击
ActionChains(browser).double_click(text_username).perform()
#执行元素的移动操作
ActionChains(browser).drag_and_drop(text_username, text_password).perform() '''''
ActionChains 类鼠标操作的常用方法:
context_click() # 右击
double_click() # 双击
drag_and_drop() # 拖动
move_to_element() # 鼠标悬停在一个元素上
click_and_hold() # 按下鼠标左键在一个元素上
''' # -----------执行JavaScript脚本 --------------
js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"
#调用js
browser.execute_script(js) # eg:
# 将页面滚动条拖到底部
js="var q=document.documentElement.scrollTop=10000"
browser.execute_script(js) # 隐藏文字信息
driver.execute_script('$("#tooltip").fadeOut();') # 隐藏按钮:
button = driver.find_element_by_class_name('btn')
driver.execute_script('$(arguments[0]).fadeOut()',button)

Python 爬虫笔记(三)的更多相关文章

  1. PYTHON 爬虫笔记三:Requests库的基本使用

    知识点一:Requests的详解及其基本使用方法 什么是requests库 Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库,相比u ...

  2. python爬虫笔记Day01

    python爬虫笔记第一天 Requests库的安装 先在cmd中pip install requests 再打开Python IDM写入import requests 完成requests在.py文 ...

  3. [Python爬虫笔记][随意找个博客入门(一)]

    [Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...

  4. 3.Python爬虫入门三之Urllib和Urllib2库的基本使用

    1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...

  5. Python爬虫进阶三之Scrapy框架安装配置

    初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 ...

  6. Python爬虫实战三之实现山东大学无线网络掉线自动重连

    综述 最近山大软件园校区QLSC_STU无线网掉线掉的厉害,连上之后平均十分钟左右掉线一次,很是让人心烦,还能不能愉快地上自习了?能忍吗?反正我是不能忍了,嗯,自己动手,丰衣足食!写个程序解决掉它! ...

  7. 转 Python爬虫入门三之Urllib库的基本使用

    静觅 » Python爬虫入门三之Urllib库的基本使用 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器 ...

  8. Python爬虫笔记一(来自MOOC) Requests库入门

    Python爬虫笔记一(来自MOOC) 提示:本文是我在中国大学MOOC里面自学以及敲的一部分代码,纯一个记录文,如果刚好有人也是看的这个课,方便搬运在自己电脑上运行. 课程为:北京理工大学-嵩天-P ...

  9. Python爬虫笔记(一):爬虫基本入门

    最近在做一个项目,这个项目需要使用网络爬虫从特定网站上爬取数据,于是乎,我打算写一个爬虫系列的文章,与大家分享如何编写一个爬虫.这是这个项目的第一篇文章,这次就简单介绍一下Python爬虫,后面根据项 ...

  10. nodejs爬虫笔记(三)---爬取YouTube网站上的视频信息

    思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息.通过分析YouTube,发现可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类 ...

随机推荐

  1. xcode禁用ARC(Automatic Reference Counting)

    Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入的最大的变革和最激动人心的变化.ARC是新的LLVM 3.0编译器的一项特性, ...

  2. [应用篇]第四篇 JSTL之C标签介绍

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  3. Vue.js随笔二(新建路由+component+添加样式+变量的显示)

    创建一个页面: 1.首先让我们看一下整个vue.js的目录,如下图所示: 2.现在让我们创建一个页面吧: 2-1首先你需要新建路由(就和建立一个如何找到项目文件的目录一个意思):进入src/route ...

  4. Ajax-更新

    ajax是与服务器进行(异步/同步)交互的技术之一交互就是对服务器一种访问ajax对服务器进行交互时页面不刷新ajax的语言载体是JS 比如我在百度输入个东西 自动弹出信息像和一些搜索字体相关的页面标 ...

  5. Andrew File System

    Andrew File System 2015-01-01 #system 突然感觉艺术细胞爆发啊,刚刚去Utown吃饭,一路上发现许多美丽的景色,拿手机一直拍,哈哈,元旦好心情~~不扯淡,还有两篇博 ...

  6. Docker 配置国内镜像拉取中心,Configure docker to use faster registries in China.

    Networking in China is really bad when it comes to using some cloud based tools like docker, it's us ...

  7. react-native关于ios的启动图标设置

    1.首先我们需要使用xcode打开项目,选择项目中的images.xcassets这个文件夹 2.点击AppIcon可以看到右边出现针对不同设备的图标尺寸 3.在左边空白处右击,选择Import... ...

  8. JS 判断是否是微信浏览器 webview

    原理很简单,就是判断 ua 中是否有字段 “micromessenger" 代码如下: function isWechat () { var ua = window.navigator.us ...

  9. spring-boot-资源处理

    WebMvcConfigurerAdapter 使用 1.实现 HandlerInterceptorAdapter 2.添加拦截器 重写WebMvcConfigurerAdapter中的addInte ...

  10. /proc/sys 子目录的作用

    该子目录的作用是报告各种不同的内核参数,并让您能交互地更改其中的某些.与 /proc 中所有其他文件不同,该目录中的某些文件可以写入,不过这仅针对 root. 其中的目录以及文件的详细列表将占据过多的 ...