webdriver

用webdriver启动浏览器

谁都会走 提交于 2020-01-28 05:45:12
用webdriver启动浏览器 from selenium import webdriver driver = webdriver.Chrome(executable_path='F:\Python37\chromedriver.exe') driver.get('https://mp.weixin.qq.com/') (executable_path=‘F:\Python37\chromedriver.exe’) 这段话有奇效 来源: CSDN 作者: Losong柚子 链接: https://blog.csdn.net/q502031565/article/details/103831894

Web自动化测试项目(二)BasePage实现

我与影子孤独终老i 提交于 2020-01-27 17:30:02
一、BasePage介绍 创建一个BasePage类,对Selenium Api进行二次封装 为了快速创建项目并投产,用到的Selenium Api才进行封装,没用到的则不封装 优先封装最重要的几个方法: 初始化webdriver 元素定位(不封装元素操作方法,例如send_keys) 浏览器加载页面 二、Selenium Api 二次封装 ├── pages │ ├── __init__.py │ └── base_page.py └── utils └── __init__.py base_page.py from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC DOMAIN = 'https://www.tapd.cn/' TIMEOUT = 10 POLL_FREQUENCY = 0.5 class BasePage(): def __init__(self, driver=None, path=None): self.driver = driver if driver != None else webdriver.Chrome

python+selenium自动化测试环境搭建

别来无恙 提交于 2020-01-27 14:16:52
selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: * 免费,也不用再为破解QTP而大伤脑筋 * 小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。 * 这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS * 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome * 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。 关于selenium的基础知识与java平台的结合,我之前写过一个《菜鸟学习自动化测试》系列,最近学python,所以想尝试一下selenium的在python平台如何搭建;还好这方法的文章很容易,在此将搭建步骤整理分享。 搭建平台windows 准备工具如下: ------------------------------------------------------------- 下载python https://www.python.org/ ----------------------------------------------------------

Python(一)|selenium + python自动化测试环境搭建

放肆的年华 提交于 2020-01-27 01:11:55
一、selenium+python 环境搭建 1.1 selenium 介绍 selenium 是一个web 的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,因为它相比QTP 有诸多优点: * 免费,也不用再为破解QTP 而大伤脑筋 * 小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。 * 支持多语言,这也是最重要的一点,不管你以前更熟悉C、java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP 只支持VBS * 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome * 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。 1.2 准备工作 搭建平台windows 准备工具如下: ------------------------------------------------------------- 下载python http://python.org/getit/ 下载setuptools 【python 的基础包工具】 http://pypi.python.org/pypi/setuptools 下载tar.gz文件后使用7Z解压 下载pip 【python 的安装包管理工具】

python爬虫之字体反爬

被刻印的时光 ゝ 提交于 2020-01-26 20:15:49
一、什么是字体反爬?   字体反爬就是将关键性数据对应于其他Unicode编码,浏览器使用该页面自带的字体文件加载关键性数据,正常显示,而当我们将数据进行复制粘贴、爬取操作时,使用的还是标准的Unicode字符映射,解析后就是干扰性数据,以猫眼电影为例: 上图表明,浏览器正常渲染的数据在调试界面显示为错误的数据,即使我们复制粘贴也是这样(猜测复制粘贴的是Unicode编码)显示,这样就起到了反爬的效果。 二、解决方案   1、找到对应的字体文件 点击箭头指向的css文件 箭头指向的链接就是我们要寻找的字体文件,我们必须把这个字体文件下载下来进行分析,找到对应关系 如果字体文件是固定的,我们可以手动分析,然后创建一个映射表就解决了,但是字体文件如果每请求一次就会变化,这种解决方式就不行了。 我们刷新一下链接,再下载一个字体文件对比一下,看是否变化了 对比后,不难发现,字体文件完全不同了。   2、绕过字体反爬 目前为止,我爬过的数据从来源可以分为PC端数据、移动端Web数据和APP数据,既然PC端有字体反爬,我们可以从移动端尝试一下。 先从简单的移动端Web数据入手,可以先使用selenium,加一个手机浏览器的User-Agent,就可以在PC端浏览器显示与手机浏览器相同的效果,下图表示在移动端Web数据是没有使用字体反爬措施得。 1 from selenium import

python selenium上传 下载

泪湿孤枕 提交于 2020-01-26 14:30:58
上传 D://unload.html 文件内容如下: < html > < head > < meta http - equiv = "content-type" content = "text/html;charset=utf-8" / > < title > upload_file < / title > < script type = "text/javascript" async = "" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" > < / script > < link href = "http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel = "stylesheet" / > < script type = "text/javascript" > < / script > < / head > < body > < div class = "row-fluid" > < div class = "span6 well" > < h3 > upload_file < / h3 > < input type = "file" name =

How to select an option from a dropdown of non select tag?

半腔热情 提交于 2020-01-26 04:33:17
问题 I am trying to select a value from a dropdown menu. I tried a lot of solutions found here but nothing work, sometimes I have the error can't scroll to view. Code trials: import time from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.select import Select from selenium.webdriver.common.action_chains import ActionChains

How to select an option from a dropdown of non select tag?

好久不见. 提交于 2020-01-26 04:33:04
问题 I am trying to select a value from a dropdown menu. I tried a lot of solutions found here but nothing work, sometimes I have the error can't scroll to view. Code trials: import time from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.select import Select from selenium.webdriver.common.action_chains import ActionChains

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: No matching capabilities error with ChromeDriver Chrome Selenium [duplicate]

我只是一个虾纸丫 提交于 2020-01-26 04:31:05
问题 This question already has answers here : Selenium “Unable to find a matching set of capabilities” despite driver being in /usr/local/bin (7 answers) Closed 6 months ago . First, machine and package specs: I am running: ChromeDriver version 75.0.3770.140 Selenium: version '3.141.0' WSL (linux subsystem) of windows 10 I am trying to run a chromebrowser through selenium. I found: these commands, to use selenium through google chrome. I have a test directory, with only the chromedriver binary

Appium环境搭建(Windows版)

社会主义新天地 提交于 2020-01-26 01:42:27
Appium介绍 Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持iOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于iOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。 Appium进行自动化测试的两个好处 (1) Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。这里,跨平台的意思是指可以在不同的系统上用相同的方式编写测试脚本,而不是指用于Android系统的测试脚本可以完全不用修改的应用于iOS系统上。事实上,Android和IOS应用几乎需要独立的进行编写。 (2)Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation