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使用的更多相关文章

  1. 《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)

    1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Se ...

  2. 编写unit test以及自动化测试WebDriver

    http://msdn.microsoft.com/en-us/library/hh694602.aspx#BKMK_Quick_starts   http://www.seleniumhq.org/ ...

  3. Selenium自动化测试WebDriver下载

    1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了. http://www.slimjet.com/ch ...

  4. Selenium (4) —— Selenium是什么? WebDriver是什么?做什么?(101 Tutorial)

    Selenium (4) -- Selenium是什么? WebDriver是什么?做什么?(101 Tutorial) selenium版本: v2.48.0 (Standalone Seleniu ...

  5. Web前端工程师成长之路——知识汇总

    一.何为Web前端工程师?          前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript ...

  6. Web前端工程师成长之路

    一.何为Web前端工程师?        前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/D ...

  7. 如何成为一名优秀的前端工程师 (share)

    发现一篇不错的博文,和大家分享一下,为有志成为一名优秀前端工程师的童鞋们提供一个参考. :)~ 本文来源:http://www.biaodianfu.com/what-makes-a-good-fro ...

  8. Web前端知识技能大汇总

    项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以 ...

  9. 前端技能汇总 Frontend Knowledge Structure

    Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有 ...

  10. 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 ...

随机推荐

  1. Nodejs中request出现ESOCKETTIMEDOUT解决方案

    做需求的时候,使用Nodejs的request批量请求某一个接口,由于接口超时,出现 ESOCKETTIMEDOUT,程序中断 为了让程序遇到 ESOCKETTIMEDOUT 之后能够继续执行下去,需 ...

  2. latex如何给表格添加注释

    在latex中,想给表格添加注释,可以使用threeparttable这个包 代码如下: \usepackage{threeparttable} \begin{table*} \begin{three ...

  3. java httpclient basic授权

    import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpS ...

  4. JVM垃圾回收算法图解

    参考文档:https://www.toutiao.com/a6691966641242112516/ 垃圾搜集算法 标记-清除法 标记-清除算法采用从根集合(GC Roots)进行扫描,对存活的对象进 ...

  5. CentOS 7系统安装nginx+php

    安装介绍1.系统环境CentOS7 2.nginx版本1.12 3.PHP版本7.2 下载地址 4.MySQL版本5.7 安装nginx添加centos7的 nginx yum源 然后执行安装 sud ...

  6. Oracle 索引数据字典、基于函数的索引

    user_indexes 字典视图包含了索引名和唯一性, user_ind_columns视图包含了索引名.表名.以及列名 dba_indexes dba_ind_columns 同理 select ...

  7. cp 复制文件或目录

    1. 命令功能 cp --copy files and directories.复制文件或目录. 2. 语法格式 cp  [option]  source des cp  [option]  sour ...

  8. HDU-6038 Function 思维+循环节

    解法:这道题很有意思,值得一做和细细思考. 首先是我们要观察这个映射公式,他的实质是什么?其实就是b到a的循环映射,这是因为a数列和b数列都是0-n-1的排列,意味着每个数都是唯一的,那么ab的这个循 ...

  9. Mongodb副本集实现及读写分离

    前言 地址:https://blog.csdn.net/majinggogogo/article/details/51586409 作者介绍了,mongodb副本集的读写原理,原理是通过代码层来实现. ...

  10. mysql数据精度丢失问题深入探讨

    不要盲目的说float和double精度可能发生丢失,而是说在存取时因为精度不一致会发生丢失,当然这里的丢失指的是扩展或者截断了,丢失了原有的精度.decimal是好,但不是说不会发生任何精度丢失.如 ...