【Selenium自动化测试】调用JavaScript与处理HTML5视频播放
创始人
2025-06-01 16:12:05
0

JS调用

有些页面操作不能依靠WebDriver 提供的API 来实现,如浏览器滚动条的拖动。这时就需要借助JavaScript 脚本。WebDriver 提供了execute_script()方法来执行JavaScript 代码。
下面演示一个用js调整浏览器滚动条位置的例子

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.set_window_size(800,600)driver.find_element(By.ID,'kw').send_keys("selenium")
driver.find_element(By.ID,'su').click()js = "window.scrollTo(100,450);"
driver.execute_script(js)sleep(2)
driver.quit()

window.scrollTo()方法用于设置浏览器窗口滚动条的水平位置和垂直位置。第一个参数
表示水平的左边距,第二个参数表示垂直的上边距。
打开百度首页,然后调整窗口大小,使得滚动条可以显示出来,然后通过execute_script()方法执行JS代码来控制浏览器滚动条的位置。

除此之外,还可利用JS对特殊的标签文本框中输入内容,例如

此类标签虽然可以被定位到,但不能通过send_keys()在文本框中输入文本信息,所以这种情况下,就需要借助JavaScript代码输入文本信息。

from selenium import webdriver
import os
from time import sleep
driver = webdriver.Chrome()
filepath = os.path.abspath('./')jsdemo = 'file:///' + filepath + '\jsdemo.html'
print(jsdemo)driver.get(jsdemo)sleep(2)
text = "input textjs"
js = "document.getElementById('id-p').value='" + text + "';"
driver.execute_script(js)sleep(2)
driver.quit()

首先,定义要输入的内容 text。然后,将text 与JavaScript 代码通过“+”进行拼接,这样做的目的是为了方便自定义输入内容。最后,通过execute_script()执行JavaScript 代码。

HTML5视频播放处理

WebDriver 支持在指定的浏览器上测试HTML5,另外,还可以使用JavaScript 测试这些功能,这样就可以在任意浏览器上测试HTML5 了。
大多数浏览器使用插件(如Flash)播放视频,但是,不同的浏览器需要使用不同的插件。HTML5 定义了一个新的元素,指定了一个标准的方式嵌入电影片段

下面演示一个自动化测试的例子:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get("http://videojs.com/")video = driver.find_element(By.ID,"preview-player_html5_api")# 返回播放文件地址
url = driver.execute_script("return arguments[0].currentSrc;",video)
print(url)# 播放视频
print("start")
driver.execute_script("arguments[0].play()",video)# 播放15s
print("播放15s")
sleep(15)# 暂停视频
print("stop")
driver.execute_script("arguments[0].pause()",video)driver.quit()

JavaScript 有个内置的对象叫作argumentsarguments 包含了函数调用的参数数组,[0]
表示取对象的第1 个值。currentSrc 返回当前音频/视频的URL。如果未设置音频/视频,则返回空字符串。load()play()pause() 控制视频的加载、播放和暂停。

相关内容

热门资讯

美国不提安卓系统华为,迈向自主... 华为与美国:一场关于技术、市场与政策的较量在当今这个数字化的世界里,智能手机已经成为我们生活中不可或...
安卓系统怎么打开ppt,选择文... 你有没有遇到过这种情况:手里拿着安卓手机,突然需要打开一个PPT文件,却怎么也找不到方法?别急,今天...
谷歌退回到安卓系统,探索创新未... 你知道吗?最近科技圈可是炸开了锅,谷歌竟然宣布要退回到安卓系统!这可不是一个简单的决定,背后肯定有着...
安卓系统待机耗电多少,深度解析... 你有没有发现,手机电量总是不经用?尤其是安卓系统,有时候明明没怎么用,电量就“嗖”的一下子就下去了。...
小米主题安卓原生系统,安卓原生... 亲爱的手机控们,你是否曾为手机界面单调乏味而烦恼?想要给手机换换“衣服”,让它焕然一新?那就得聊聊小...
voyov1安卓系统,探索创新... 你有没有发现,最近你的手机是不是变得越来越流畅了?没错,我要说的就是那个让手机焕发青春的Vivo V...
电脑刷安卓tv系统,轻松打造智... 你有没有想过,家里的安卓电视突然变得卡顿,反应迟钝,是不是时候给它来个“大保健”了?没错,今天就要来...
安卓系统即将要收费,未来手机应... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是安卓系统可能要开始收费了!这可不是开玩笑的,这可是...
雷凌车载安卓系统,智能出行新体... 你有没有发现,现在的汽车越来越智能了?这不,我最近就体验了一把雷凌车载安卓系统的魅力。它就像一个聪明...
怎样拍照好看安卓系统,轻松拍出... 拍照好看,安卓系统也能轻松搞定!在这个看脸的时代,拍照已经成为每个人生活中不可或缺的一部分。无论是记...
安卓车机系统音频,安卓车机系统... 你有没有发现,现在越来越多的汽车都开始搭载智能车机系统了?这不,咱们就来聊聊安卓车机系统在音频方面的...
老苹果手机安卓系统,兼容与创新... 你手里那台老苹果手机,是不是已经陪你走过了不少风风雨雨?现在,它竟然还能装上安卓系统?这可不是天方夜...
安卓系统7.dns,优化网络连... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,别急,让我来给你揭秘这可能与你的安卓系...
安卓手机系统怎么加速,安卓手机... 你有没有发现,你的安卓手机最近变得有点“慢吞吞”的?别急,别急,今天就来给你支几招,让你的安卓手机瞬...
小米note安卓7系统,探索性... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,小米Note这款手机,自从升级到了安卓7...
安卓和鸿蒙系统游戏,两大系统游... 你有没有发现,最近手机游戏界可是热闹非凡呢!安卓和鸿蒙系统两大巨头在游戏领域展开了一场激烈的较量。今...
安卓手机没有系统更,揭秘潜在风... 你有没有发现,现在安卓手机的品牌和型号真是五花八门,让人挑花了眼。不过,你知道吗?尽管市面上安卓手机...
充值宝带安卓系统,安卓系统下的... 你有没有发现,最近手机上的一款充值宝APP,在安卓系统上可是火得一塌糊涂呢!这不,今天就来给你好好扒...
安卓系统8.0镜像下载,轻松打... 你有没有想过,想要给你的安卓手机升级到最新的系统,却不知道从哪里下载那个神秘的安卓系统8.0镜像呢?...
安卓系统修改大全,全方位修改大... 你有没有想过,你的安卓手机其实是个大宝藏,里面藏着无数可以让你手机焕然一新的秘密?没错,今天就要来个...