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

时间:2016-09-07 11:55:04

标签: c# selenium selenium-webdriver webdriver

此行代码返回元素数。 document.getElementsByClassName("entry entryWriteable"); - >返回70个元素

我想实现一个循环,以便下面的代码行将为所有元素执行。

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

任何人都可以帮助我如何使用C#selenium吗?

2 个答案:

答案 0 :(得分:0)

为了在C#的selenium中执行JS,你应该使用下一个代码:

class std::string {

    char *data;
    size_t length;

    // ...
};

所以你可以执行你想要的任何JS代码。

((IJavaScriptExecutor) Driver).ExecuteScript("your code")); 会返回ExecuteScript,所以您可以将其代表。

答案 1 :(得分:0)

就像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#在管道上拆分。那是你想要的吗?来自元素数组的所有文本值?