这个复合类其实就是嵌套类,使用最后一个作为类名即可…
报错信息:selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Compound class names not permitted 解决方法:使用其它的定位方法,这个问题是由于定位的classname名称不规范导致…
InvalidSelectorError: Compound class names not permitted报错处理 环境:python3.6 + selenium 3.11 +  chromedriver.exe 我们在解析网页的时候,总是会遇到大量的tag,如何精确定位到这些tag,也是有很多的方法. 今天在用 find_element_by_class_name获取一个节点对象时,报了个错 Compound class names not permitted. 原始代码: select…
selenium实战脚本集(1)——新浪微博发送QQ每日焦点,乙醇用谷歌实现的,下边是用火狐实现的. 代码如下: # coding = utf-8 from selenium import webdriver import time profiles = webdriver.FirefoxProfile("C:/Documents and Settings/Administrator/Application Data/Mozilla/Firefox/Profiles/rhw9fq7m.defau…
Selenium实战脚本集-新浪微博发送QQ每日焦点 http://www.spasvo.com/ceshi/open/kygncsgj/Selenium/201549150822.html 背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战的练习,帮助大家去快速掌握和使用selenium webdriver.多用才会有感触. 练习 首先去www.…
前置条件: 1.本机已搭建ECShop3.0网站 2.在脚本目录创建了user.txt文本如下: 目的:实现从txt中读取配置文件信息,本实战中,包含url地址.用户名.密码,然后进行ESChop的登录 附上代码: # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import…
背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战的练习,帮助大家去快速掌握和使用selenium webdriver.多用才会有感触. 练习 到http://www.zhihu.com/explore这个页面,用selenium获取今日最热和本月最热的文章标题和内容. 用到的知识点 爬虫知识.用webdriver去也页面上爬一些内容.用到的核心a…
背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战的练习,帮助大家去快速掌握和使用selenium webdriver.多用才会有感触. 练习 首先去www.qq.com的首页把今日话题的标题和url拿到 然后去weibo.com登陆,登陆后发一条微博,内容就是今题话题的标题和url 用到的知识点 自动登录.微博登录的时候有可能会有验证码,所以自动…
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基…
必备知识 在官网上下好selenium-3.0.1-py2.py3-none-any.whl,然后进入下载文件所在的位置 pip install selenium-3.0.1-py2.py3-none-any.whl 再下个Chrom的驱动,具体可以参考虫师的博客 Selenium快速入门 1. 需要的模块和基本操作 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionC…
#-*- coding:utf-8 -*- __author__ = "carry" from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exception…
基于electorn的桌面应用,网上相关资料较少.所有记录一下.使用java+selenium+testng对该类型应用的自动化测试方法. 代码样例 package com.contract.web.cases; import org.openqa.selenium.By;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.…
基于常见的两种下拉框的展示形式: 1.点击弹出下拉框: 2.鼠标移动弹出下拉框(move_to_element) 实例一[鼠标点击弹出的下拉框]: e.g百度首页的设置--高级搜索--时间: 导包: from selenium.webdriver.common.action_chains import ActionChains driver.find_element_by_link_text("高级搜索").click()#根据名称定位timeSetting = driver.find…
python3.6.selenium.chromedriver 先上代码 from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.get('https://www.douyu.com/xiao8') #此处写斗鱼url danmukuid = 0 while(1): danmakus = driver.find_elements_by_xpath('//*[@id="js-cha…
iframe driver.switch_to_frame(id="xx") 多窗口 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("http://mail.sina.com.cn/") driver.implicitly_wait(30) driver.find_element_by_xpath("/html/bod…
一.Chrome浏览器 首先,在所有的打开浏览器操作之前,要配置好python环境和selenium,安装好如下图所示:然后可以选择一款适合自己的编辑器,这里用的是pycharm(第一次写博客贴的动图怎么那么奇怪啊哈哈哈哈,不忍直视) from selenium import webdriver import time driver = webdriver.Chrome() driver.maximize_window() driver.get("https://baidu.com")…
一.数据驱动 由于大多数文章和资料都把“读取数据文件”看做数据驱动的标志,下面创建一个baidu_data.csv文件: 文件第一列为测试用例名称,第二列为搜索的关键字.接下来创建test_baidu_data.py文件: import csv import codecs import unittest from time import sleep from itertools import islice from selenium import webdriver class TestBaid…
1.浏览器滚动条的拖动,不能依靠WebDriver提供的API来实现,用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo(0,450); window.scrollTo()方法用于设置浏览器窗口滚动条的水平位置和垂直位置,第一个参数表示水平左边距,第二个参数表示垂直上边距.相应的python代码如下: from selenium import webdriver from time import sleep driver = webdriver.Firefo…
一.简单滑块的实例 当单机滑块时,改变的只是CSS样式,HTML代码如下: <div class="slide-to-unlock-progress" style="background-color: rgb(255, 233, 127); height: 36px;"></div> <div class="slide-to-unlock-handle" style="background-color: r…
完整代码&火狐浏览器驱动下载链接:https://pan.baidu.com/s/1pc8HnHNY8BvZLvNOdHwHBw 提取码:4c08 双十一刚过,想着某宝的信息看起来有些少很难做出购买决定.于是就有了下面的设计:​ 既然有了想法那就赶紧说干就干趁着双十二还没到 一.准备工作:安装 :selenium 和 tkinter pip install selenium pip install tkinter 下载火狐浏览器驱动 二.网站分析发现web端如果不登录就不能进行查找商品 登录后查…
链接 粉丝反馈表 要求 服务质量5颗星 喜欢的内容选择各种公开课 对交流群的意见需要填写 留下自己正确的联系方式 点击提交 断言 不需要断言,能符合上面的要求成功提交就可以…
描述 去开发者头条抓取本日的top 10内容,也就是排在前面的10个,需要抓取标题和url 将这些内容保存在数据库,推荐使用sqlite 写个简单的客户端,要求可以展示每日的内容,点击标题后可以打开浏览器浏览该内容 要求 用同一种语言实现 使用phantomjs去抓取内容…
描述 打开infoq页面,抓取最新的一些测试文章 需要抓取文章的标题和内容 如果你有个人blog的话,可以将这些文章转载到自己的blog 要求 不要在新窗口打开文章 自行了解最新的测试思潮与实践…
原文地址:http://stackoverflow.com/questions/20361643/compound-class-names-are-not-supported-consider-searching-for-one-class-name-an 使用webdriver定位元素方法By.ClassName("btn-buy jq-productdetail-buy")时报的错误,查找到上述资料,说是因为中间的空格,它会识别为两个元素,而如果这样定位By.ClassName(&…
1.iframe的切入和切出 #切入 driver.switch_to.frame(driver.find_element_by_id('iFrame_1')) # 切换出来 driver.switch_to.default_content() 2.句柄的切入和切出 main_windows = driver.current_window_handle # 获取主窗口句柄 # main_handle = driver.current_window_handle ''' 指纹采集 ''' # 点击…
SMPT(Simple Mail Transfer Protocol)简单邮件传输协议,是一组由源地址到目的地址传送邮件的规则,可以控制信件的中转方式.Python的smptlib模块提供了简单的API用来实现发送邮件的功能,它对SMPT进行了简单的封装. 一.python自带的发送邮件功能 1.发送邮件正文 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮件主题 s…
一.概览下载与安装 HTMLTestRunner是unittest的一个扩展,可以生成易于使用的HTML测试报告.HTMLTestRunner是在BSD许可证下发布的. 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 因为该扩展不支持Python3,就做了一些修改 使其…
一.测试用例的执行顺序 层级:多个测试目录 > 多个测试文件 > 多个测试类 > 多个测试方法(测试用例).在这里以一个测试执行顺序的脚本为例test_order.py import unittest class TestBdd(unittest.TestCase): def setUp(self): print("test TestBdd") def test_ccc(self): print("test ccc") def test_aaa(s…
一.断言方法 方法 检查 版本 assertEqual(a,b) a==b   assertNotEqual(a,b) a!=b   assertTrue(x) bool(x) is True   assertFalse(x) bool(x) is False   assertIs(a,b) a is b 3.1 assertIsNot(a,b) a is not b 3.1 assertIsNone(x) x is None 3.1 assertIsNotNone(x) x is not No…
Python中的单元测试框架包含:doctest.unittest.pyttest.nose等,使用unittest单元测试框架不需要自行定义断言失败的提示,并且当一个测试函数执行失败后,后面的测试函数还会继续执行下去.下面以一个简单计算器来编写自动化测试用例.被测试的代码如下: # 计算器类 class Calculator: def __init__(self, a, b): self.a = int(a) self.b = int(b) def add(self): return self…