selenium的一些使用方法】的更多相关文章

定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_e…
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近只能专家和伯乐发表文章至首页(why),这严重影响别人阅读新人的文章和程序猿的激情,所以想起自己博客园的账号,感觉编辑功能非常不错啊,以后两边都会更新文章.最后记录此站第一篇文章,希望能分享更多文章于此!        前文目录:        [Python爬虫] 在Windows下安装Phant…
Python_selenium二次封装selenium的几个方法 将常用的几个webdriver方法封装到自己写的一个类中去,此实例中是将"浏览器后退.浏览器前进.打开站点和关闭浏览器"写进这个类中,此时,我们使用pycharm这个软件来进行测试. 打开pycharm这个软件,点击[File]--[New Project]新建一个工程名,然后右键鼠标,点击[New]--[python package],如下图所示 然后输入包名称即可. 此时,需要创建两个包,其中一个python文件中,…
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_eleme…
参考地址: https://www.cnblogs.com/eastmount/p/4810690.html 这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近只能专家和伯乐发表文章至首页(why),这严重影响别人阅读新人的文章和程序猿的激情,所以想起自己博客园的账号,感觉编辑功能非常不错啊,以后两边都会更新文章.最后记录此站第一篇文章,希望能分享…
Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的WebDriver 驱动,处理与Selenium和浏览器之间的通信. 实现Web页面自动化控制的先决条件是定位到正确的Web页面元素,WebDriver提供了8种不同的Web元素定位方法: Locator Description id ID属性,最常用的定位方法,每个元素的id应该是唯一的 css sel…
ActionChains和TouchAction可以用来模拟点击.双击.滑动等事件.ActionChains用于执行PC端的鼠标移动.按键.拖拽等事件:TouchActions用法与ActionChains类似,可以用来模拟PC和移动端的点击.滑动.拖拽等手势操作. ActionChains和TouchAction都是将动作存储在队列中,然后执行perform()方法,按队列顺序执行动作. ActionChains 有两种执行方式 链式: ActionChains(driver).move_to…
package com.allin.pc;import java.util.NoSuchElementException;import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.SearchContext;import org.openqa.selenium.StaleElementReferenceException;import org.ope…
先列出selenium所有方法,然后挨个使用!说明 add_cookieapplication_cachebackcapabilitiesclosecommand_executorcreate_web_elementcurrent_urlcurrent_window_handledelete_all_cookiesdelete_cookiedesired_capabilitieserror_handlerexecuteexecute_async_scriptexecute_scriptfind_…
Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有直接的方法去实现上传本地文件,这里总结了两种上传文件的方式. 一.利用Robot类处理文件上传. 其大致流程可以为: 1. 利用selenium点击web上本地文件的上传按钮: 2. 在弹出的弹框中,文件路径输入框默认的是光标的聚焦,将文件在磁盘上的路径通过拷贝和黏贴的方法写上去. 3. 通过按下回车,默认触发弹框的确定按钮,完成文件上传的功能. 这里以百度首页的利用图片搜索为例: 打开百度首页,搜索按…
1.通过先定位到具体的元素然后通过text方法获取文本信息,如获取控件名称等 driver.find_element_by_xpath("//div[/h1").text 2.直接通过定位到的元素的属性直接获取属性名称,如输入框提示信息等 driver.find_element_by_id("XXX").get_attribute(YYY) 启发:元素的定位可以先定位到大的颗粒度,在向小的颗粒度定位,例如先定位到table,在定位到table中的行和列 代码如下:…
参见官网:http://selenium-python.readthedocs.io/locating-elements.html 有多种策略来定位页面中的元素.你可以使用最适合你的情况.Selenium提供以下方法来定位页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_elem…
之前和大家说了input标签的上传文件的方式: <selenium2 python 自动化测试实战>(13)——上传文件 现在好多网站上传的标签并不是input,而是div之类的比如: 全部都是div标签,这时候用上面的方法就不好用了.今天船长在大神的帮助下学会了两种方法,现在船长来教大家上传div这种标签的方式. 最方便的——SendKeys 大家只需要pip install SendKeys库,然后再代码里直接用就OK了,这里用大鱼号上传视频作为例子上代码: 注意,浏览器用的是火狐,因为c…
Python+Selenium有以下八种定位元素的方法: 1. find_element_by_id() eg: find_element_by_id("kw") 2. find_element_by_name() eg: find_element_by_name("wd") 3. find_element_by_class_name() eg: find_element_by_class_name("bg s_btn") 4. find_ele…
1. 强制等待 sleep(xx) 是最简单粗暴的一种办法,不管你浏览器是否加载完了,程序都得等待3秒,3秒一到,继续执行下面的代码,作为调试很有用,不建议总用这种等待方式,严重影响程序执行速度. 代码: from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get('https://www.baidu.com') sleep(3) # 强制等待3秒再执行下一步 drive…
本文来介绍,如何把常用的几个webdriver的方法封装到自己写的一个类中去,这个封装过程叫二次封装Selenium方法.我们把打开站点,浏览器前进和后退,关闭和退出浏览器这这个方法封装到一个新写的类中去. 我们按照如下层次结构在PyCharm中新建两个包和两个.py文件: 上图,baidu_search.py是我们编写测试脚本的python文件,具体测试代码写在这个文件.包test1下的basepage.py文件是这次我们介绍的二次封装selenium方法而新建的.这里提一下,python中默…
[环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和绝对路径之分,当元素层级较多时,绝对路径会很长: 相对路径具有布尔逻辑运算. 缺点: 1)性能差,定位元素的性能比其他方式差: 2)稳定性差,Xpath会随着页面布局元素的改变而改变: 3)兼容性不好,在不同浏览器下Xpath的实现是不一样的. [示例] import unittest from s…
[环境] Python3.6+selenium3.0.2+IE11+win7 [定位方法] 1.link/partial link定位方法:定位的元素为文字链接且链接很长时 方法:find_element_by_link_text('xx‘) find_element_by_partial_link_text('xx') [示例] 用以下代码成功定位 import unittest from selenium import webdriver import time class LearnEle…
[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:find_element_by_name('xx') 3.通过class name定位 方法:find_element_by_class_name('xx') 4.通过tag name定位 方法:find_element_by_tag_name('xx') 说明:tag name在html中是标签的名字,…
为什么需要等待时间:页面加载需要时间,如果页面没有加载完成,直接去定位,可能定位不到元素 1.强制等待: import time time.sleep(2) 不管有没有完成加载,必须等待2秒 2.隐式等待: driver = webdriver.Chrome() driver.implicity_wait(10) driver.get('http://www.baidu') implicity_wait()默认参数的单位为妙,首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度.其次,它…
等待是为了使脚本执行更加稳定 常用的休眠方式: 1.time模块的sleep方法 :引入from time import sleep 2.implicitly_wait():设置webdriver等待时间, implicitly_wait(5):当找不到时一直会去找,直到超时,当找到了,就不用等待5S,会立即执行 3.WebDriverWait:等待条件满足或者超时后退出 from selenium.webdriver.support.ui import WebDriverWait def ge…
1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = utf-8 from time import sleep from selenium import webdriver # 驱动文件路径 driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe' # 启动浏览器 driver…
前提: 我们在做Web自动化时,有的时候要等待元素加载出来,才能操作,不然会报错 1.强制等待 2.隐式等待 3.显示等待 内容: 一,强制等待 这个比较简单,就是利用time模块的sleep的方法来实现 例子: # coding = utf-8 from time import sleep from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome() # 打开百度首页 driver.get(r'https://www.ba…
如果在定位元素属性中包含了如ID等元素属性,那么在一个测试中,定位方法具体有哪几种,可以参考by模块中的By类,By的代码如下: class By(object): """ Set of supported locator strategies. """ ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT…
1.ID定位 可以根据元素的id来定位属性,id是当前整个HTML页面中唯一的,所以可以通过id属性来唯一定位一个元素,是首选的元素定位方式.(动态ID不做考虑) # 导入webdriver和By from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器驱动 driver = webdriver.Chrome() # 定位方式一 ele1 = driver.find_element_by…
/**对比图片进行校验是否成功**/package com.allin.pc;import java.awt.image.BufferedImage;import java.awt.image.DataBuffer;import java.io.File;import java.io.IOException;import java.util.concurrent.TimeUnit;import javax.imageio.ImageIO;import org.apache.commons.io.…
今晚不想加班,于是赶紧回来看看书: 1.下了selenium的小工具:FireBug/FirePath. 2.确定了看书顺序,我觉得难度低点开始比较好,所以我还是先看基于Python的selenium,另一本书再看把,觉得自己能力还是太弱,还是从友好的先上手,虽然之前也看了BY_ID的一些用法,但是真的实际做起来弱鸡一个. 3.学习了selenium 键盘事件模拟,其实在这之前把许久没有打开的虚拟机打开了一次..我连MAN都忘了,我的心很累. 还是言归正传把,学点东西就说出来.还是调用键盘的AP…
package com.allin.pc;import java.util.List;import org.openqa.selenium.WebElement;import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import or…
/**     * 操作浏览器的cookie     */        @Test    public void testCookie()throws Exception{        driver.get("http://allinmd.com");        //得到当前页面下所有cookies,并输出他们所在域,name,value,有效日期和路径        Set<Cookie> cookies = driver.manage().getCookies(…
* 杀掉浏览器进程      */     public static void operateWindowsProcess(){         WindowsUtils.tryToKillByName("chrome.exe");     }        //将浏览器窗口截屏,调用getScreenshotAs方法把当前浏览器截图,保存        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputTy…