Awesomium C# |需要帮助从许多元素中获取随机元素
Awesomium C# | Need Help getting an random Element from many Elements
在这段代码中我得到了所有人的数量。这奏效了。
现在我想从所有人中随机抽取一个人,但这行不通。我在 using (person)
行得到一个 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
对不起我的英语。
这里是代码:
dynamic document = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName(\"badge\")[1]");
using (document)
{
string gg = document.innerHTML;
personcount = Convert.ToInt16(gg);
}
int selectperson = rnd.Next(0, personcount-1);
dynamic document2 = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByTagName('a')");
using (document2)
{
dynamic person = document2.getElementByClassName("name")[selectperson];
using (person)
{
MessageBox.Show(person.innerText);
}
}
这是来自示例人物的 HTML 标签:
<a class="name" href="http://kontakt-4.dastelefonbuch.de/Neuwied/Martin-Kaiser-Neuwied-Feldkircher-Str.html" rel="nofollow">
我不知道如何做到这一点。但是我现在找到了另一种方法,一切正常,谢谢! :)
dynamic document = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName(\"badge\")[1]");
string gg = document.innerText;
personcount = Convert.ToInt16(gg);
int odd = rnd.Next(1, personcount * 2);
for (int i = 0;odd % 2 == 0;i++)
{
odd = rnd.Next(1, personcount * 2);
}
dynamic document2 = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName('name')["+odd+"]");
using (document2)
{
if (document2.HasMethod("click"))
{
document2.Invoke("click");
stepcount = 2;
}
}
在这段代码中我得到了所有人的数量。这奏效了。
现在我想从所有人中随机抽取一个人,但这行不通。我在 using (person)
行得到一个 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
对不起我的英语。
这里是代码:
dynamic document = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName(\"badge\")[1]");
using (document)
{
string gg = document.innerHTML;
personcount = Convert.ToInt16(gg);
}
int selectperson = rnd.Next(0, personcount-1);
dynamic document2 = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByTagName('a')");
using (document2)
{
dynamic person = document2.getElementByClassName("name")[selectperson];
using (person)
{
MessageBox.Show(person.innerText);
}
}
这是来自示例人物的 HTML 标签:
<a class="name" href="http://kontakt-4.dastelefonbuch.de/Neuwied/Martin-Kaiser-Neuwied-Feldkircher-Str.html" rel="nofollow">
我不知道如何做到这一点。但是我现在找到了另一种方法,一切正常,谢谢! :)
dynamic document = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName(\"badge\")[1]");
string gg = document.innerText;
personcount = Convert.ToInt16(gg);
int odd = rnd.Next(1, personcount * 2);
for (int i = 0;odd % 2 == 0;i++)
{
odd = rnd.Next(1, personcount * 2);
}
dynamic document2 = (JSObject)webControl1.ExecuteJavascriptWithResult("document.getElementsByClassName('name')["+odd+"]");
using (document2)
{
if (document2.HasMethod("click"))
{
document2.Invoke("click");
stepcount = 2;
}
}