如何在Selenium Webdriver C#中执行Js脚本

7kjnsjlb  于 2022-11-24  发布在  C#
关注(0)|答案(2)|浏览(124)

此行代码返回元素数。document.getElementsByClassName("entry entryWriteable");-〉返回70个元素
我想实现一个循环,这样,下面一行代码将对所有元素执行。

document.getElementsByClassName("entry entryWriteable")[i].value;

有谁能帮我用C#实现 selenium 吗?

sf6xfgos

sf6xfgos1#

要在C#上的selenium中执行JS,应使用以下代码:

((IJavaScriptExecutor) Driver).ExecuteScript("your code"));

所以你可以执行任何你想要的JS代码。
ExecuteScript返回object,因此您可能可以对它进行典型化。

l2osamch

l2osamch2#

就像Denis说的,但是如果你需要一个包含整个元素数组中所有值的返回值,那么试试:

using OpenQa.Selenium.Webdriver.Extensions

driver.ExecuteJavascript<string>(`
var els = document.getElementsByClassName("entry entryWriteable");
string returnAllElementTexts = "";
for(var i = 0; i < els.length; i++) {

    returnAllElementTexts += els[i] + "|";

}
return returnAllElementText;`);

这将返回一个由竖线分隔的字符串,其中包含所有值。按C#中的竖线拆分。这是您想要的吗?所有文本值都来自元素数组?

相关问题