【自动化测试】WebDriver使用
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options import time
import selenium
import random # from selenium.webdriver.common.desired_capabilities import DesiredCapabilities def driver_open():
# dcap = dict(DesiredCapabilities.PHANTOMJS)
# dcap["phantomjs.page.settings.userAgent"] = (r"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36")
options = Options()
options.add_argument('--log-level=3')
driver = webdriver.Chrome(executable_path='E:\chromedriver\chromedriver.exe', chrome_options=options)
return driver def next_windows(driver,current_window):
window_handles = driver.window_handles
for window_handle in window_handles:
if current_window != window_handle:
handleb = window_handle driver.switch_to.window(handleb)
return driver def next_windows_handle(driver,current_window):
window_handles = driver.window_handles
for window_handle in window_handles:
if current_window != window_handle:
handleb = window_handle
return handleb if __name__ == '__main__':
learn_dict = {}
driver = driver_open()
driver.maximize_window()
driver.implicitly_wait(10) # seconds
# # Theoretical study
theoretical_study_url = 'xxxxx'
driver.get(theoretical_study_url)
time.sleep(20)
current_window = driver.current_window_handle
print(current_window)
# 浏览6篇文章
article = 6
elements = driver.find_elements_by_xpath('//span[contains(@class,"text")]')
for element in elements:
element.click()
driver = next_windows(driver,current_window)
client_height = driver.execute_script("return document.body.clientHeight;")
# scroll_height = driver.execute_script("return document.body.scrollWidth;") # print(scroll_height)
init_position = 0
while (client_height > init_position):
init_position = init_position + 200
js_string = "window.scrollTo(0," + str(init_position) + ");"
driver.execute_script(js_string)
sleep_time = random.randint(2, 4)
time.sleep(sleep_time) time.sleep(3)
driver.close()
driver.switch_to.window(current_window)
article = article - 1
if(article == 0):
break driver.get('xxxxxx')
time.sleep(3) window_handles = driver.window_handles
for window_handle in window_handles:
current_window = window_handle driver.switch_to.window(current_window)
# 浏览6个视频
videos_count = 6
videos = driver.find_elements_by_xpath('//div[contains(@class,"innerPic")]')
for video in videos:
driver.switch_to.window(current_window)
video.click()
driver = next_windows(driver, current_window)
js_string = "window.scrollTo(0,400);"
driver.execute_script(js_string)
time_sleep = random.randint(10,50)
time.sleep(time_sleep)
driver.close()
videos_count = videos_count - 1
if(videos_count == 0):
break driver.quit()
【自动化测试】WebDriver使用的更多相关文章
- 《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Se ...
- 编写unit test以及自动化测试WebDriver
http://msdn.microsoft.com/en-us/library/hh694602.aspx#BKMK_Quick_starts http://www.seleniumhq.org/ ...
- Selenium自动化测试WebDriver下载
1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了. http://www.slimjet.com/ch ...
- Selenium (4) —— Selenium是什么? WebDriver是什么?做什么?(101 Tutorial)
Selenium (4) -- Selenium是什么? WebDriver是什么?做什么?(101 Tutorial) selenium版本: v2.48.0 (Standalone Seleniu ...
- Web前端工程师成长之路——知识汇总
一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript ...
- Web前端工程师成长之路
一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/D ...
- 如何成为一名优秀的前端工程师 (share)
发现一篇不错的博文,和大家分享一下,为有志成为一名优秀前端工程师的童鞋们提供一个参考. :)~ 本文来源:http://www.biaodianfu.com/what-makes-a-good-fro ...
- Web前端知识技能大汇总
项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以 ...
- 前端技能汇总 Frontend Knowledge Structure
Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有 ...
- Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么(转)
Web 建站技术中,HTML.HTML5.XHTML.CSS.SQL.JavaScript.PHP.ASP.NET.Web Services 是什么?修改 建站有很多技术,如 HTML.HTML5.X ...
随机推荐
- [Python3 练习] 009 利用列表隐藏并找到有用的信息
题目:利用列表隐藏并找到有用的信息 (1) 描述 1) 题源 鱼 C 论坛中"小甲鱼"老师出的题 链接地址:第020讲:函数:内嵌函数和闭包 | 课后测试题及答案 2) 修改 题中 ...
- <每日一题> Day1:CodeForces.1140D.MinimumTriangulation(思维题)
题目链接 参考代码: #include <iostream> using namespace std; int main() { ; int n; cin >> n; ; i ...
- JDK 13 的 12 个新特性,真心涨姿势了
作者:木九天 my.oschina.net/mdxlcj/blog/3107021 1.switch优化更新 JDK11以及之前的版本: switch (day) { case MONDAY: cas ...
- Consul集群Server模式
Consul集群Server模式 架构示意图 Consul在生产环境下运行模式分为两种:Server模式和Client模式(dev模式属于开发模式不在这里讨论),我们先用Server模式搭建一个Con ...
- BUUCTF--SimpleRev
测试文件:https://buuoj.cn/files/7458c5c0ce999ac491df13cf7a7ed9f1/SimpleRev?token=eyJ0ZWFtX2lkIjpudWxsLCJ ...
- express快速入门
1.简介: express是基于Node.js平台,快速开放极简的web开发框架,使用 各种http使用工具和中间件,创建强大API. 2.安装 npm install express -g 全局安装 ...
- JAVA对象序列化和反序列化学习
JAVA序列化就是将JAVA对象转化为字节序列的过程,而JAVA反序列化就是将字节序列转化为JAVA对象的过程. 这一过程是通过JAVA虚拟机独立完成,所以一个对象序列化后可以在任意时间和任意机器上反 ...
- HTML文档流和脱离文档流
文档流:也就是我们通常看到的由左到右.由上而下的元素排列形式,在网页中每个元素都是默认按照这个顺序进行排序和显示的. 脱离文档流:元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理 ...
- layui隐藏表格列
根据需求我们需要展示某些数据,但有的时候这些数据又不该展示出来,比如不同角色看到不同数据,这个时候就会需要隐藏些数据了 我们需要在表格完成的回调进行处理 done: function (res, cu ...
- 2018-2-13-win10-uwp-读写csv-
title author date CreateTime categories win10 uwp 读写csv lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17 ...