此行代码返回元素数。
document.getElementsByClassName("entry entryWriteable");
- >返回70个元素
我想实现一个循环,以便下面的代码行将为所有元素执行。
document.getElementsByClassName("entry entryWriteable")[i].value;
任何人都可以帮助我如何使用C#selenium吗?
答案 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#在管道上拆分。那是你想要的吗?来自元素数组的所有文本值?