gpt4 book ai didi

java - Selenium 网络驱动程序 : JavascriptExecutor to push play on video

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:43 25 4
gpt4 key购买 nike

如何使用JavascriptExecutor在页面的javascript jquery代码上执行播放功能?

这是网站上的代码:

<script type="text/javascript">
jQuery(document).ready(function($) {
$('#wp_mep_1').mediaelementplayer({
m:1
,features: ['playpause','current','progress','duration','volume','tracks','fullscreen']
});
});
</script>

这是 JavascriptExecutor 的基本启动:

    JavascriptExecutor js = (JavascriptExecutor) driver;
Object o = js.executeScript("return '123'");

我可能有点偏离,但我觉得我应该在这个例子中将“o”设置为 $('#wp_mep_1').mediaelementplayer,然后传递 (“playpause”)。

类似于:

    JavascriptExecutor js = (JavascriptExecutor) driver;
Object $('#wp_mep_1').mediaelementplayer = js.executeScript('playpause');

我没有 Javascript 或 jquery 的经验,建议会很有帮助。

最佳答案

应该很简单:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('#wp_mep_1').play()");

不需要从 JS 返回任何内容到 Java,因为 .play() 无论如何都不是 Selenium API - 它是页面上使用的 JS 库的一部分,所以不会能够从 Java 中的对象中调用它。您仍然需要将元素传递给 JS。 (您可以先在 Java 中选择元素,然后传递给 JS 进行 .play() 调用,如下所示:

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement o = driver.findElement(By.id("wp_mep_1"));
js.executeScript("$('arguments[0]').play()", o);

但是你也可以选择JS中的元素,因为它更整洁。 (第一种方式只有2行,而这个是3行)。

关于java - Selenium 网络驱动程序 : JavascriptExecutor to push play on video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com