gpt4 book ai didi

javascript - 在 Selenium WebDriver 中执行 '.hover' Javascript

转载 作者:行者123 更新时间:2023-11-30 13:21:05 24 4
gpt4 key购买 nike

我正在使用 Selenium WebDriver 并想从网页执行一些 javascript。我发现了一些关于执行 javascript 的(非常有用的)帖子并取得了一些成功,尽管当我必须从页面上的对象调用 javascript 时我似乎很挣扎(我是新手所以我的术语和基本理解可能是离开?)。以下是我要调用的页面上的javascript:

$j(".webGrid tr").hover(function () {
$j(this).find("#imgEdit").css("visibility", "visible");
}

目前我觉得我最接近的两个尝试是:

js.ExecuteScript("('.itemId').find('#imgEdit').css('visibility', 'visible')"); //1
js.ExecuteScript("(arguments[0]).find('#imgEdit').css('visibility', 'visible')", element); //2

谁能告诉我哪里出错了?在第一种情况下,我得到一个 ".itemId".find is not a function,在第二种情况下,arguments[0].find is not a function。我发现“查找”可能是问题所在,但它在页面 javascript 文件中,所以我的理解有问题。

最佳答案

一个间接的答案,但为什么不直接使用 ActionBuilder 在元素上执行悬停呢?



<p>Actions builder = new Actions(driver); </p>

<p>builder.moveToElement(someElement); </p>

builder.build().perform();

更直接的答案... find 必须是来自 javascript 库的函数,而不是浏览器默认可用的函数。如果你要做这样的事情:



return ((IJavaScriptExecutor)webDriverInstance).ExecuteScript("return arguments[0].innerHTML", elementInstance).ToString();
它会起作用,因为 innerHTML 属性可从任何 javascript 元素对象获得。

关于javascript - 在 Selenium WebDriver 中执行 '.hover' Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239006/

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