首页 前端知识 【Selenium自动化测试】调用JavaScript与处理HTML5视频播放

【Selenium自动化测试】调用JavaScript与处理HTML5视频播放

2024-02-13 10:02:53 前端知识 前端哥 142 683 我要收藏

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对特殊的标签文本框中输入内容,例如<textarea>
文本框的 HTML 代码:

<textarea id="id-p" style="width: 98%" cols="50" rows="5" class="textarea">
</textarea>

此类标签虽然可以被定位到,但不能通过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 定义了一个新的元素,指定了一个标准的方式嵌入电影片段

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

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = 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() 控制视频的加载、播放和暂停。

以上就是本期文章的所有内容,感谢观看,如果对您有帮助请点赞关注+收藏,一键三连,多谢支持!

转载请注明出处或者链接地址:https://www.qianduange.cn//article/1929.html
标签
selenium
评论
发布的文章

jQuery 下载与安装教程

2024-02-28 11:02:44

若依中jquey相关问题

2024-02-28 11:02:41

【JavaWeb】1.JQuery

2024-02-28 11:02:21

jQuery日历签到插件下载

2024-02-28 11:02:20

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!