此行代码返回元素数。document.getElementsByClassName("entry entryWriteable");-〉返回70个元素我想实现一个循环,这样,下面一行代码将对所有元素执行。
document.getElementsByClassName("entry entryWriteable");
document.getElementsByClassName("entry entryWriteable")[i].value;
有谁能帮我用C#实现 selenium 吗?
sf6xfgos1#
要在C#上的selenium中执行JS,应使用以下代码:
((IJavaScriptExecutor) Driver).ExecuteScript("your code"));
所以你可以执行任何你想要的JS代码。ExecuteScript返回object,因此您可能可以对它进行典型化。
ExecuteScript
object
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#中的竖线拆分。这是您想要的吗?所有文本值都来自元素数组?
2条答案
按热度按时间sf6xfgos1#
要在C#上的selenium中执行JS,应使用以下代码:
所以你可以执行任何你想要的JS代码。
ExecuteScript
返回object
,因此您可能可以对它进行典型化。l2osamch2#
就像Denis说的,但是如果你需要一个包含整个元素数组中所有值的返回值,那么试试:
这将返回一个由竖线分隔的字符串,其中包含所有值。按C#中的竖线拆分。这是您想要的吗?所有文本值都来自元素数组?