webdriver

Python+Selenium自动化篇-7-模拟键盘操作

依然范特西╮ 提交于 2020-01-19 11:33:16
0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法;通过send_keys()方法来模拟键盘上的按键。 # 导入键盘类 Keys() from selenium.webdriver.common.keys import Keys 1.常用的键盘操作: send_keys(Keys.BACK_SPACE):删除键(BackSpace) send_keys(Keys.SPACE):空格键(Space) send_keys(Keys.TAB):制表键(TAB) send_keys(Keys.ESCAPE):回退键(ESCAPE) 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) send_keys(Keys.F1):键盘F1 ..... send_keys(Keys.F12):键盘F12 2.实例 from selenium import webdriver from selenium.webdriver.common.keys

Selenium WebDriver: Open new tab instead of a new window

邮差的信 提交于 2020-01-19 05:11:06
问题 I am using Selenium WebDriver. Every link is opened in a new browser window. It is not convenient for me. How can I change it so that it opens just in new tab? 回答1: Selenium has no ability to switch tabs at the moment. Because of this we force the browser to open links in new windows but since we are able to switch windows we force the browser to take the approach. This may be fixed in a later version 回答2: Selenium has the ability to switch over tabs now-a-days. The below code1: will work for

selenium3+python3环境搭建

孤人 提交于 2020-01-19 02:16:01
selenium3+python3环境搭建教程图解 出处:https://m.jb51.net/article/152224.htm 这篇文章主要介绍了selenium3+python3环境搭建教程图解,需要的朋友可以参考下 1、首先安装火狐浏览器 2、搭建python环境 安装python,安装的时候把path选好,就不用自己在配置,安装方法有单独文档分享 安装好以后cmd打开输入python查看是否配置好 3、安装pip cmd 一般python装好后会带pip,只需升级到最新就可以了,命令python -m pip install --upgrade pip, 很多的教程 https://pypi.python.org/pypi/pip ,也可以下载pip源码包 减压以后在cmd 窗口下用cd命令切换到 E:\新建文件夹 (2)\python\pip-18.1 目录下 。然后输入 python setup.py install 安装pip工具。 安装完成以后会显示: Finished processing dependencies for pip==8.1.2 4、安装python集成开发环境pycharm 地址的话官网一搜索就有,下载一个exe文件 下载到本地以后,双击exe文件安装,具体官网有很多教程,可以看怎么安装。安装好以后就可以创建project。 5

键盘事件.py

拟墨画扇 提交于 2020-01-19 00:39:36
from selenium import webdriver#引入keys模块from selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()driver.get("https://www.baidu.com")#输入框输入内容driver.find_element_by_id("kw").send_keys("selenium")#删除多输入的一个mdriver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)#输入空格键+教程driver.find_element_by_id("kw").send_keys(Keys.SPACE)driver.find_element_by_id("kw").send_keys("教程")#全选输入框内容driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")#剪切输入框内容driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"x")#粘贴内容到输入框driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")

上传文件.py

杀马特。学长 韩版系。学妹 提交于 2020-01-19 00:07:13
"""上传文件是比较常见的Web功能之一,但WebDriver并没有提供专门用于上传的方法,如何实现上传操作关键在于上传文件的思路。一般Web页面的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口中选择本地文件进行上传。而WebDriver是无法操作Windows控件的,所以,对于初学者来说,一般思路会卡在如何识别Window控件这个问题上。对于Web页面的上传功能实现一般有以下两种方式。·普通上传:普通的附件上传是将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器。·插件上传:一般是指基于Flash、JavaScript或Ajax等技术所实现的上传功能。"""#send_keys实现上传from selenium import webdriverimport osdriver = webdriver.Chrome()file_path = "file:///" + os.path.abspath("upfile.html")driver.get(file_path)#定位上传按钮、添加本地文件driver.find_element_by_name("file").send_keys("D:\\upload_file.txt")#Autolt实现上传"""Autolt目前最新版本是v3

Selenium Webdriver——设置等待时间

大城市里の小女人 提交于 2020-01-18 19:28:35
1.隐式等待 implicitlyWait(): 当使用了隐士等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常 当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0 一旦设置了隐式等待,则它存在整个 WebDriver 对象实例的声明周期中 ,隐式的等到会让一个正常响应的应用的测试变慢, 它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 2.显示等待 WebDriverWait():webdriver的针对某个元素的明确等待(explicitly wait) 详细格式如下: WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程) timeout - 最长超时时间,默认以秒为单位 poll_frequency - 休眠时间的间隔(步长)时间,默认为0.5 秒 ignored_exceptions - 超时后的异常信息

Selenium+Python学习之一

强颜欢笑 提交于 2020-01-18 05:55:00
刚入门selenium+Python,实验成功之后,记录一下过程。 首先是在知乎上面看到一个关于selenium+python的示例,于是自己便尝试搭建环境上手实验。 按照作者的代码敲一遍之后执行,竟然报错了~ 代码如下: # coding=utf-8 from selenium import webdriver browser = webdriver.Firefox() browser.get("http://zhihu.com") browser.close()   然后运行,竟然报错了。 其实上面代码没有问题,但是,我想通过API来熟悉一下webdriver,于是在WebDriver API上面查看:http://selenium-python.readthedocs.io/api.html 按照API示例编写代码如下: # coding=utf-8 from selenium.webdriver import Firefox from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener class MyListener(AbstractEventListener): def before_navigate_to(self, url, driver):

王者荣耀官网https://pvp.qq.com/web201605/wallpaper.shtml壁纸的python爬取

假装没事ソ 提交于 2020-01-18 02:37:21
链接: 王者荣耀壁纸官网 . 遇到的问题 此网站的壁纸显示采用了动态网页技术,也就是说用爬取一般的静态网站的方法是不行的。笔者一开始就是妄图使用大名鼎鼎的 requests 库的get()方法来获取该网站的HTML源码,但是发现里面并没有想要的关于壁纸的信息。百度之后知道了问题的解决方法:就是弃用 requests 库,转战selenium库 神奇的selenium库 1.安装selenium库 pip install selenium 2.下载chromedriver.exe并将其放在你的谷歌浏览器chrome.exe所在目录。 3.导入selenium库中的webdriver,相当于模拟浏览器的运行 from selenium import webdriver 观察网页源代码(这一步很关键) 在浏览器中打开网址,按F12键,点击下图圈出的按键,然后随便点击一个壁纸图片 如下图,按1,2,3操作 复制元素后,粘贴观察,得到三处关键点 < div class = "p_newhero_item" > < img data-src = "http://shp.qpic.cn/ishow/2735010212/1577940124_84828260_1263_sProdImgNo_1.jpg/200" src = "http://shp.qpic.cn/ishow/2735010212

仿图书检索系统第一弹Python

喜你入骨 提交于 2020-01-17 22:32:16
个人博客 https://blog.fmujie.cn/ 制作缘由: 简单点说就是图书馆老师有一个项目,需要给一个公司讲什么东西,需要检索系统,但是数据来源却要自己从网上爬,因为账号很贵,不值当的再另购置一个账号,找到了一位学长来做,学长忙着考研(●’◡’●)所以就顺下来了,哈哈!开始我以为很简单的爬取点东西罢了,然后正真着手做的时候呵呵了~原因下篇博客中有讲 => 在此奉上链接 无奈之下想到了用Python自动化爬虫–>就是相当于挂一样,自己帮你操控浏览器来抓取数据 效率可想而知爬取较多的话,会有点慢(后话~~哭了┭┮﹏┭┮~) 所需Python的知识: Selenium: Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器,但已经不再支持 PhantomJS了,一般使用chrome和firefox无界面浏览器。Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。 具体了解请点这!!! UserWarning: Selenium support for PhantomJS has

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法:

我是研究僧i 提交于 2020-01-17 20:07:54
全文转载至:http://www.cnblogs.com/testyao/p/5658200.html python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考: http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址: http://pan.baidu.com/s/1dEZQ0pz (懒人直接下载吧) 2.修改汇总: 第94行,将import StringIO修改成import io 第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO() 第642行,将if not rmap.has_key(cls):修改成if not cls in rmap: 第766行,将uo = o.decode('latin-1')修改成uo = e 第775行,将ue = e.decode('latin-1'